htaccess, который получает дополнительные параметры и передает их в точку перенаправления - PullRequest
0 голосов
/ 30 декабря 2011

Привет, у меня уже есть несколько переписываний, работающих над проектом, но теперь я хотел бы иметь возможность передавать дополнительные параметры в основную точку доступа

мой htaccess:

Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteRule ^$                        index.php  [L]
RewriteCond %{REQUEST_FILENAME}       !-f
RewriteCond %{REQUEST_FILENAME}       !-d
RewriteRule ^([^/]+)/?([^/]*)/?/?([^/]*)/?([^/]*)/?([^/]*)/?([^/]*)$ index.php?account=$1&task=$2&object_id=$3&app_type=$4&p=$5&items=$6

Я хотел бы иметь возможность передавать дополнительные параметры, и эти параметры должны быть переписаны и переданы в index.php в дополнение к исходным параметрам, как в:

http://site.com/user/books/434?another_param=8989898

, и это следует переписать вindex.php соответственно, как в:

index.php?account=user&task=books&object_id=434&app_type=&p=&items=&another_param=8989898

Какие изменения я должен внести в .htaccess, чтобы переписать эти дополнительные параметры и добавить их к исходному перенаправлению?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 30 декабря 2011

Очень просто, добавьте флаг "Query-String-Append" в rewriteRule, формат:

RewriteRule Pattern Substitution [flags]

(источник) http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule

Флаг для запросаstring-append - это просто QSA , поэтому в вашем примере у вас будет:

RewriteRule ^([^/]+)/?([^/]*)/?/?([^/]*)/?([^/]*)/?([^/]*)/?([^/]*)$ index.php?account=$1&task=$2&object_id=$3&app_type=$4&p=$5&items=$6 [QSA]

Еще один полезный флаг для вас будет L , что означает «Последний», т.е., apache прекращает поиск других совпадений после выполнения подстановки:

RewriteRule ^([^/]+)/?([^/]*)/?/?([^/]*)/?([^/]*)/?([^/]*)/?([^/]*)$ index.php?account=$1&task=$2&object_id=$3&app_type=$4&p=$5&items=$6 [QSA,L]
1 голос
/ 30 декабря 2011

Вам необходимо добавить флаг QueryStringAppend [QSA], например:

RewriteRule ^([^/]+)$ index.php?rt=$1 [L,QSA] 
...