Проблема со знаками вопроса в htaccess

K
На сайте с 22.11.2013
Offline
1
543

Всем привет! Такая проблема:

Есть ряд ссылок, на подобии этой:

http://site.ru/index.php?option=com_content&view=article&id=13&Itemid=12

Ссылку необходимо перенаправить на 404-ую страницу http://site.ru/404/. Для этого в htaccess прописываю

RewriteEngine On

RewriteRule ^.htaccess$ -[F]

RewriteCond %{HTTP_HOST} ^site.ru$ [NC]

RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

RewriteCond %{REQUEST_URI} ^\/index.php?option=com_content&view=article&id=7&Itemid=8\/?$

RewriteRule ^.*$ http://%{HTTP_HOST}/404/ [R=301,L]

Однако, вводе проблемного адреса в браузер, по прежнему ничего не происходит и сайт остаётся на главной странице http://site.ru/.

Мне сказали что редирект не происходит из-за знаков вопроса в адресе и чтобы их изолировать, посоветовали прописать следующие строки

RewriteEngine on

RewriteCond %{QUERY_STRING} ^(.+)

RewriteRule ^$ %1 [L]

Только вот не понятно в каком формате теперь следует прописывать проблемный адрес?

Или может кто знает альтернативное решение?

Спасибо.

bukachuk
На сайте с 07.09.2008
Offline
97
#1

В index.php обработайте 404 и все

Программирование PHP,Mysql (/ru/forum/934470)
S
На сайте с 23.05.2004
Offline
316
#2

RewriteEngine On

RewriteRule ^index.php?option=com_content&view=article&id=([0-9]+)&Itemid=([0-9]+)$ http://site.ru/404/ [R=301,L]

По идее так.

Это просто подпись.
siv1987
На сайте с 02.04.2009
Offline
427
#3

В формате QUERY_STRING - все что после знака вопроса (без самого знака)

RewriteRule - все что до знака вопроса (без самого знака)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий