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/
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), то нам нужно перенаправить, но мы не достигнем этой части правила, пока не будут сняты все проверки специальных символов.
Вам понадобятся все эти правила перед любым перенаправлением, чтобы правила могли зацикливаться и удалять несколько экземпляров любого из этих символов. Затем, как только специальных символов больше не останется, механизм перезаписи может просочиться туда, где находятся ваши перенаправления.