htaccess / mod_rewrite для дружественных поисковых систем URL - PullRequest
0 голосов
/ 17 февраля 2011

У меня есть куча файлов в корне сети: -

/ abc-674.php
/def-643.php
и т. Д. И т. Д.

Iхотите показать их при запросе следующих URL-адресов без изменения URL-адреса в браузере: -

/ products / abc-674 / this_can_be_anything.php
/products/abc-674/or_this.php

и перенаправляют на /abc-674.php, и

/ products / def-643 / this_can_be_anything.php
/products/def-643/or_this.php

оба перенаправляют на /def-643.php.

Таким образом, в основном, бит между products / и следующим / является целью, в то время как что-либо после этогоможно эффективно игнорировать.

Если это имеет значение, у меня уже есть небольшой код в моем .htaccess для направления всего трафика на мой предпочитаемый домен (с www): -

# Direct all traffic to domain.com
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.domain\.com [NC] 
RewriteCond %{HTTP_HOST} !^domain$ [NC] 
RewriteRule ^(.*) http://www.domain.com/$1 [R=301,L]

РЕДАКТИРОВАТЬ: Чтобы уточнить - 2-я последняя строка в выше, потому что я захожу на сайт на моем dev-сервере только через http://domain/, и поэтому не хочу, чтобы это переписывание применялось к этим запросам.Однако я хочу, чтобы это новое переписывание применялось ко всем запросам.

Любая помощь с благодарностью!

1 Ответ

0 голосов
/ 17 февраля 2011

Я думаю, вы можете использовать следующее правило в .htaccess:

RewriteRule ^products/([\d\w]+)/(.*)$ /$1.php
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...