Убрать определенные значения строки запроса (но не все) из URL, используя htaccess - PullRequest
1 голос
/ 09 декабря 2011

Как продолжение предыдущего поста, у меня есть следующий URL:

test/example/example/index.html?t=Audi&p=Petrol

но я бы хотел, чтобы правило перезаписи исключало строку запроса t и p . Обратите внимание, что могут быть другие значения строки запроса, которые могут быть переданы, и они не должны быть удалены.

Ответы [ 2 ]

2 голосов
/ 09 декабря 2011

Попробуйте:

# First remove the t=something
RewriteCond %{QUERY_STRING} ^(.*)(^|&)t=[^&]+(.*)$
RewriteRule ^(.*)$ /$1?%1%3 [N]

# Next remove the p=something
RewriteCond %{QUERY_STRING} ^(.*)(^|&)p=[^&]+(.*)$
RewriteRule ^(.*)$ /$1?%1%3 [L]

Таким образом, переход к http://domain/test/example/example/index.html?a=b&t=fooo&d=f&p=barr&e=r приведет к тому, что URI будет переписан в: /test/example/example/index.html?a=b&d=f&e=r

0 голосов
/ 09 декабря 2011

Примерно так:

RewriteRule ^/(.*)\&t=[a-zA-Z]+(.+)$ %1%2 [L]

Или используйте RewriteCond, если вам нужно собрать эти параметры, т.е.хотя ENV.

...