Есть ли способ перенаправить 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, все будет отлично.
Что я делаю не так? Большое спасибо за вашу помощь!
Вы правы, это не соответствует правилам, которые вы предоставили.
Причина в том, что символы Юникода, представленные% 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