301 перенаправление на новый веб-сайт, но без апострофов в URL


Я пытаюсь найти 301 страницу, на которой в URL-адресе есть ', и обычный перенаправление 301 не работает. Есть ли способ сопоставить часть URL-адреса до ' и использовать его для перехода на новую страницу? Примеры URL-адресов приведены ниже:

oldsite.example.com/2011/06/cat-ate-martin’s-homework/

До

newsite.example.com/2011/06/cat-ate-martins-homework/

Author: Stephen Ostermiller, 2014-06-27

1 answers

Что-то похожее на правила перезаписи из Ответа Джона Лина StackOverflow на Удаление символов из URL с помощью htaccess должно решить вашу проблему. Я бы использовал это, которое должно переписать URL, чтобы в нем не было символов, а затем перенаправить:

RewriteRule ^(.*)\'(.*)$ /$1$2 [L]
RewriteRule ^(.*)\’(.*)$ /$1$2 [L]

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^(.*)$ http:/newsite.example.com/$1 [L,R=301]

Статус перенаправления позволяет mod переписать, что если какое-либо из вышеперечисленных правил было применено (таким образом, значение статуса внутреннего перенаправления = 200), то нам нужно перенаправить, но мы не достигнем этой части правила, пока не будут сняты все проверки специальных символов.

Вам понадобятся все эти правила перед любым перенаправлением, чтобы правила могли зацикливаться и удалять несколько экземпляров любого из этих символов. Затем, как только специальных символов больше не останется, механизм перезаписи может просочиться туда, где находятся ваши перенаправления.

 4
Author: Stephen Ostermiller, 2017-05-23 12:37:08