Apache Rewrite: перезаписать ТОЛЬКО индексные URL независимо от глубины с исключениями расширения файлов - PullRequest
0 голосов
/ 17 января 2012

У меня это несколько работает, хотя важно понимать настройку.

При поддержке нескольких доменов (несколько доменов используют одну и ту же копию программного обеспечения) мне нужно переписать ТОЛЬКО каталоги (которые заканчиваются чисто как dir1 / или dir2 /).

Визуально здесь находятся ссылки на файлы ...

site1.com / галерея / image.jpg

site2.net / галерея / image.png

галерея / (код PHP здесь)

.htaccess

Поэтому я хочу, чтобы только каталоги переписывались в галерею /, а все файлы изображений (по расширению) переписывались в пути site1 / gallery / image.jpg.

То, что я сейчас перезаписываю, ТОЛЬКО базовая галерея / путь, однако она НЕ перезаписывает более глубокие индексы галереи (например, gallery / my_gallery /), однако исключение изображения также работает.

RewriteEngine on
RewriteRule ^[^/]*/gallery/$ gallery/$1 [QSA]
RewriteCond %{REQUEST_URI} !\.(gif|jpg|png)$

RewriteCond %{REQUEST_URI} !.*/(gallery|admin|blog)
RewriteRule !\.(css|js)$ index.php

Так, как мне захватить все каталоги независимо от глубины, сохраняя при этом исключение файла изображения, пожалуйста?

1 Ответ

0 голосов
/ 27 января 2012

Оказывается, все, что мне нужно было сделать, это добавить расширения файлов в условие перезаписи.Также очень важно отметить, что условие перезаписи должно появляться перед правилом перезаписи.

RewriteEngine on
RewriteCond %{REQUEST_URI} !\.(css|gif|ico|jpg|js|mp3|png|swf|xml)$
RewriteRule ^[^/]*/(gallery|admin|blog)(.+) $1$2 [QSA]
RewriteCond %{REQUEST_URI} !.*/(gallery|admin|blog)
RewriteRule !\.(css|js)$ index.php
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...