Удаление параметра GET в .htaccess

regex apache .htaccess mod-rewrite joomla1.5

4879 просмотра

1 ответ

Я не могу удалить один параметр GET, ошибочно добавленный одним модулем 404 SEF.

Я хочу удалить "Task = View", только если он появляется один, а не с другим параметром.

Так

www.mysite.com/1.html?task=view следует перенаправить на www.mysite.com/1.html .

Хотя www.mysite.com?task=view&view=article должен остаться без изменений.

Независимо от того, какой RewriteRule я использую, этот параметр не идет. Похоже, он генерируется из любой переменной окружения при запуске index.php.

Например, это не работает:

RewriteCond %{QUERY_STRING}  ^task=view$ [NC]
RewriteRule (.*)task=view.*  $1 [R=301,L]

Вот мой файл .htaccess:

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|.php|.html|.htm|.feed|.pdf|.raw|/[^.]*)$  [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

Options  -Indexes

Как справиться с этим?

Автор: AgA Источник Размещён: 12.11.2019 09:41

Ответы (1)


1 плюс

Решение

Используйте это правило:

RewriteCond %{QUERY_STRING}  ^task=view$ [NC]
RewriteRule ^(.*)$ $1? [R=301,L]

?в конце $1удалит любую существующую строку запроса.

Автор: anubhava Размещён: 03.02.2014 09:11
Вопросы из категории :
32x32