Как перенаправить URL-адрес, содержащий смарт-цитаты через .htaccess? - PullRequest
1 голос
/ 26 августа 2011

Есть ли способ перенаправить URL, содержащий умные кавычки, через .htaccess? Я использую следующие правила. Кажется, работает только последний:

RewriteRule ^8-%E2%80%9Crules%E2%80%9D-for-social-advertising$ /8-rules-for-social-advertising [R=301,L]
RewriteRule ^8-“rules”-for-social-advertising$ /8-rules-for-social-advertising [R=301,L]
RewriteRule ^8-%25E2%2580%259Crules%25E2%2580%259D-for-social-advertising$ /8-rules-for-social-advertising [R=301,L]

Когда я перехожу на http://blog.eloqua.com/8-“rules”-for-social-advertising/ или http://blog.eloqua.com/8-%E2%80%9Crules%E2%80%9D-for-social-advertising, он не перенаправляется.

Но если я перейду к http://blog.eloqua.com/8-%25E2%2580%259Crules%25E2%2580%259D-for-social-advertising, все будет отлично.

Что я делаю не так? Большое спасибо за вашу помощь!

1 Ответ

3 голосов
/ 09 ноября 2011

Вы правы, это не соответствует правилам, которые вы предоставили.

Причина в том, что символы Юникода, представленные% E2% 80% 9C и% E2% 80% 9D (также известные как смарт-цитаты Microsoft)уже были превращены в их представление Unicode в Apache.Таким образом, вам нужно правильно сопоставить байтовый поток, представляющий эти символы в apache.

Для правильного перенаправления URL-адресов, таких как:

http://www.example.com/8-%E2%80%9Crules%E2%80%9D-for-social-advertising

Вы должны использовать правило, подобное этому:

http://www.example.com/8-\xE2\x80\x9Crules\xE2\x80\x9D-for-social-advertising
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...