символы в проблеме перенаправления .htaccess - PullRequest
0 голосов
/ 10 ноября 2011

У меня проблемы с перенаправлением некоторых страниц с "% 11" и "% 28".

Я пытаюсь перенаправить пару страниц, остальные работают, но я понял, что те, в которых есть некоторые символы, не перенаправляют.

Например:

Redirect 301 /cars/mercedes%11benz/ http://www.example.com/cars/mercedes-benz/

Redirect 301 /alfa-romeo/alfa-romeo-147-%282001%E2%80%932009%29-2008090174/ http://www.example.com/cars/alfa-romeo-147/

не работают.

Заранее спасибо за помощь.

1 Ответ

0 голосов
/ 10 ноября 2011

В основном указывает, что разрешен только текст ASCII.Может быть, у вас есть пробелы в URL.Пожалуйста, удалите их.

Что касается mod_rewrite, я полагаю, что вы получили это право, за исключением того, что символ точки в диапазоне символов не должен быть экранирован, то есть дефис правильно расположен в начале, а пробел экранирован.Ü, вероятно, не нужно избегать, но это не должно повредить).Что касается браузеров, выполняющих конвертацию, это «вещь браузера», которую понимает Apache (и конвертирует внутренне в правильный символ).

Попробуйте это:

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /[^%?\ ]*\%
RewriteRule ^. http://www.example.com/ [R=301,L]


RewriteRule ^/cars/mercedes-benz/  http://www.test-site.com/cars/mercedes%11benz/ [QSA]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...