Условия и параметры перезаписи URL - PullRequest
1 голос
/ 19 января 2012

---- РЕДАКТИРОВАТЬ ---

Я только что понял, что в моем объяснении проблемы не хватает важной части информации.

URL-адреса должны только перенаправляться при наличии второго параметра.

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

Перенаправить любой URL-адрес, содержащий / d /, ТОЛЬКО если / d2 / также найден в URL-адресе

---- Конец редактирования_ _

Мне нужно 301 перенаправить все URL-адреса на сайте, которые содержат определенный параметр длятот же URL, но с включенным дополнительным каталогом.Все URL, которые требуют перенаправления, содержат определенный каталог: / d / Пример:

http://www.mysite.com/category1/d/subcategory1/subdirectory2/

- следует перенаправить на -

http://www.mysite.com/newdirectory/category1/d/subcategory1/subdirectory2/

Одной из общих черт любого из URL, требующих перенаправления, является то, что все они содержат каталог / d / в URL, который всегда следует сразу за каталогом «category», как указано жирным шрифтом в приведенных выше примерах URL.Затем я хотел бы вставить дополнительный каталог перед каталогом категории, как указано жирным шрифтом в приведенном выше примере URL.Остальная часть URL останется прежней.

Может кто-нибудь помочь с этим?Я относительно новичок в mod_rewrite и понимаю, что могу сделать большой беспорядок, если не пойму правильно.

Заранее спасибо всем, кто может предложить hlep

:)

Ответы [ 2 ]

3 голосов
/ 19 января 2012

Попробуйте (отредактировано, чтобы отразить изменение в вопросе):

    RewriteEngine On
    RewriteBase /

    RewriteCond %{REQUEST_URI} ^.*/d/.* [NC]
    RewriteCond %{REQUEST_URI} ^.*/d2/.* [NC]
    RewriteCond %{REQUEST_URI} !/newdirectory/ [NC]
    RewriteRule ^(.*)/d/(.*)$ http://www.mysite.com/newdirectory/$1/d/$2 [R=301,L]
0 голосов
/ 19 января 2012

Попробуйте добавить следующее в файл htaccess в корневом каталоге вашего сайта.

RewriteEngine On
RewriteBase /

#if the url contains a /d2/ [NC]
RewriteCond %{REQUEST_URI} /d2/ [NC]
RewriteRule ^([-a-zA-Z0-9]+/d/[-a-zA-Z0-9]+/[-a-zA-Z0-9]+/)$ /newdirectory/$1 [L,R,NC]
...