Динамические URL-адреса с использованием файла .htaccess - PullRequest
0 голосов
/ 02 апреля 2011

Я хотел бы преобразовать URL-адрес, например

http://mysite.com/search/search_mgmt.php?CategoryID=1

что-то вроде

http://mysite.com/search/my-seo-friendly-url

У меня включен mod_rewrite.

1 Ответ

5 голосов
/ 02 апреля 2011

Чего вы хотите достичь? Если что-то попадает на ваш сайт с search/search_mgmt.php?CategoryID=1 и вы хотите преобразовать его в search/my-seo-friendly-url, вам придется перенаправить трафик на другой URL:

RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^mysite.com/search/search_mgmt.php?CategoryID=1$ http://mysite.com/search/my-seo-friendly-url [R=301,L]

С этим правилом сервер отправит клиенту код 301 Moved Permanently с заголовком Location:, установленным на новый URL. Вы можете изменить код 301 на 302 (Найдено): [R=302,L]. (Примечание: в этом случае клиент отправляет два запроса на ваш сервер для получения контента.)

Если вы не добавите этот спецификатор результата, то ваш сервер просто вернет результат, как если бы к нему обращались с переписанным URL. Так что, я думаю, вы действительно хотели бы, чтобы пользователи видели ваш my-seo-friendly-url, тогда как на сервере он будет обрабатываться search_mgmt.php?CategoryID=1. Вы можете сделать это следующим образом:

RewriteRule ^mysite.com/search/my-seo-friendly-url$ http://mysite.com/search/search_mgmt.php?CategoryID=1
...