Вопрос по redirect, apache – Удалить строки запроса из 301 перенаправления

8

Я изо всех сил пытаюсь создать соответствующие редиректы 301 для сайта, который был изначально создан с использованием строк запроса. Старая структура URL выглядит следующим образом:

http://www.oldsite.com/about/index.cfm?fuseaction=cor_av&artID=5049

Я хочу перенаправить всю подпапку (с именем about) на новую страницу в новом домене. URL нового домена выглядит следующим образом:

http://www.newsite.com/info

Итак, я настроил перенаправление, которое выглядит так:

redirectMatch 301 ^/about/ http://www.newsite.com/info  

Он просто отлично перенаправляет, но сохраняет исходную строку URL-адреса присоединенной, поэтому новый URL-адрес в браузере выглядит следующим образом:

http://www.newsite.com/info/?fuseaction=cor_av&artID=5049 

Мне явно не хватает специалиста Apache / 301, чтобы понять, как это исправить. Я просто хочу скинуть все с? на

Очень ценю любую помощь.

Ваш Ответ

2   ответа
30

два варианта:

redirectMatch 301 ^/about/ http://www.newsite.com/info? 

или

RewriteEngine on
RewriteRule ^about/(.*) http://www.newsite.com/info? [L,R=301]

нак @question в конце кажется критическим. Второй выглядит немного чище (первый оставляет знак вопроса в конце вашего URL)

Обратите внимание, что в Apache> = 2.4 вы можете использовать флаг QSD вместо добавления конечного знака вопроса:RewriteRule ^about/(.*) http://www.newsite.com/info [ QSD,L,R=301] Pierre-Olivier Vares
Благодарность! Это сработало для меня. Ash
0

Попытайтесь добавить этот код в.htaccess указанное дляoldsite.com:

RewriteCond %{REQUEST_URI} ^/about/index.cfm$
RewriteRule ^(.+) http://www.newsite.com/info/ [R=301,QSA]

Следовать за

Нет,QSA a добавляет старую строку запроса к новой ссылке. Кd оставь, используй флагQSD (apache> = 2.4) или просто добавьте? как в принятом ответе. Видеть Apache RewriteRule Флаги dennis

Похожие вопросы