Подтвердить что ты не робот

.htaccess 301 перенаправление одной страницы

После редизайна сайта у меня есть пара страниц, которые нужно перенаправить. Все остается в одном домене, всего несколько вещей были реорганизованы и/или переименованы. Они имеют форму:

/contact.php

теперь:

/contact-us.php

Используя файл .htaccess, я добавил эту строку, которую я считаю наиболее рекомендуемой:

RedirectMatch 301 /contact.php /contact-us.php

Это в основном отлично - это делает работу - проблема, она также перенаправляет:

  • /team1/contact.php
  • /non-existant-folder/contact.php

Есть ли способ указать, что я только хочу перенаправить contact.php в корневой каталог?

4b9b3361

Ответ 1

RedirectMatch использует регулярное выражение, сопоставляемое с URL-адресом. И ваше регулярное выражение /contact.php просто означает любой URL-путь, содержащий /contact.php, но не только любой URL-адрес, который точно равен /contact.php. Поэтому используйте привязки для начала и конца строки (^ и $):

RedirectMatch 301 ^/contact\.php$ /contact-us.php

Ответ 2

Это должно сделать это

RedirectPermanent /contact.php /contact-us.php 

Ответ 3

redirect 301 /contact.php /contact-us.php

Нет смысла использовать правило redirectmatch, а затем писать свои ссылки, чтобы они были точными. Если вы не включаете, вам не нужно исключать! Просто используйте перенаправление без соответствия, а затем обычно используйте ссылки

Ответ 4

Вы также можете использовать RewriteRule, если хотите, чтобы соответствие шаблона и перенаправление URL-адресов.

Ответ 5

Если вы предпочитаете использовать простейшее возможное решение, альтернативу RedirectMatch является более базовой директивой Redirect.

Он не использует сопоставление шаблонов, поэтому он более ясен и проще для других.

то есть

<IfModule mod_alias.c>

#Repoint old contact page to new contact page:
Redirect 301 /contact.php http://example.com/contact-us.php

</IfModule>

Строки запроса должны переноситься, поскольку документы говорят:

Дополнительная информация о пути, выходящая за пределы согласованного URL-пути, будет добавляется к целевому URL.

Ответ 6

Это перенаправит страницу вашего магазина на вашу страницу контактов

    <IfModule mod_rewrite.c>
    RewriteEngine On 
    RewriteBase /
    Redirect 301 /storepage /contactpage
    </IfModule>