2015-04-14 3 views
0

Я только что обновил, и в настоящее время я устанавливаю все 301 переадресации в файле htaccess Apache. Все переадресации работают с текущим форматом.Apache htaccess переписать игнорирование Url Encoding

Redirect 301 /old+url+4343/ http://www.newsite.com/new-url-here/ 

Но я заметил, что многие старые URL имеют некоторую кодировку - в основном, с вопросами о названиях. Apache htaccess, кажется, игнорирует кодировку или просто флоп и ничего не делает. Это, например, не работает;

Redirect 301 /old+question+title%3F/ http://www.newsite.com/new-question-title%3F/ 

В этом случае% 3F должен быть вопросительным знаком (?). Обычно я могу посетить сайт, если я копирую и вставляю URL-адрес, который работает нормально.

Я также попытался установить Charset в htaccess, чтобы увидеть, работает ли это, но, к сожалению, это не так, это был код;

AddDefaultCharset UTF-8 

Любые идеи о том, почему Apache игнорирует кодировку url и как я могу ее перезаписать?

ответ

0

Redirect директива очень ограничена, лучше использовать RewriteRule для возможности регулярных выражений и флаги, как NE:

RewriteEngine On 
RewriteRule ^old\+question\+title\x3F/ /new-question-title\%3F/ [L,NC,NE,R=302] 
+1

Кстати это правильно тестирование правила, поэтому я оценил бы причину downvote здесь – anubhava

+0

Hi @anubhava, спасибо для ответа - к сожалению, он, похоже, не работает (кстати, я не остановился). Файл htaccess, похоже, игнорирует правило, как раньше. Нужно ли мне скрывать любые косые черты в URL-адресах для каталогов? – Alex

+0

Можете ли вы рассказать мне полный URL-адрес, который вы использовали для отличного местоположения и местоположения этого htaccess? – anubhava

Смежные вопросы