301 файл перенаправления на чистый URL - PullRequest
1 голос
/ 18 июня 2011

Работа над перенаправлениями для моей страницы.У меня есть список всех старых и новых URL.

Старые URL-адреса являются /directory/subdirectory/file.php

Новые URL-адреса являются чистыми URL-адресами

/ каталог/ subdirectory / file /

Некоторые новые URL-адреса соответствуют старым URL-адресам без ".php", а другие нет.

Рекомендуется одна веб-страница:

RedirectMatch 301 ^/sales/products/item$ /products/item-name/

НоМожет ли следующее дать мне цикл перенаправления?

RedirectMatch 301 ^/privacy-policy$ /privacy-policy/

Я еще не пробовал, но надеюсь не попасть в беду.

1 Ответ

0 голосов
/ 18 июня 2011

Используя Apache mod_rewrite - добавьте эти строки в ваш .htaccess файл:

# Activate Rewrite Engine
RewriteEngine On

# redirect *.php to "nice" url
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)\.php$ $1/ [R=301,QSA]

# process "nice" urls by looking for appropriate .php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ $1.php [L,QSA]

Эти правила будут делать 2 вещи:

1) редирект (301) * .php на "хорошие" URL: directory/subdirectory/file.php станет directory/subdirectory/file/

2) правильно обслуживает такие «хорошие» URL, например, directory/subdirectory/file/ будет рассматриваться как directory/subdirectory/file.php.

P.S. Если перенаправление не работает (иногда это может происходить в зависимости от конфигурации), попробуйте добавить косую черту до $ 1 (например, /$1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...