Исключение перезаписи Apache, чтобы не включать определенные каталоги.

Настройка

Моя настройка состоит в том, чтобы разделять ресурсы для двух или более сайтов, которые имеют схожую структуру, хотя различное содержание. В примере ...

http: // localhost / site1 /

http: // localhost / site2 /

Существует два типа перезаписи содержимого CMS (в значительной степени просто содержимого, которое выводится эхом на страница) и специальные модули (например, программный модуль блога), где у меня есть программное обеспечение, которое позволяет более конкретно обрабатывать контент из базы данных.

Итак, первое правило перезаписи для блога гарантирует, что модуль блога обрабатывает запросы блога ....

http: // localhost / site1 / blog / *

http: // localhost / site2 / blog /*

...using программного модуля блог, расположенные в ...

HTTP: // локального / блог /

Система CMS правило перезаписи предназначено для обработки неспецифических запросов модуля ...

http: // localhost / site1 / *

http: // localhost / site2 / my_page.html *

... с использованием программы перезаписи CMS, расположенной по адресу ...

http: // localhost / rewrite.php

Проблема

Переписывания модуля блога и модуля CMS конфликтуют. Я попытался сделать исключение, используя следующее правило. Вот мой код ...

RewriteEngine on
RewriteCond %{REQUEST_URI} !\.js$
RewriteRule .*/blog(.+) blog$1 [QSA]
RewriteRule !.*/(admin|blog|forums)(.+)$ rewrite.php

Последнее правило не работает. С помощью этого кода, если я получу доступ к ..

http: // localhost / site1 / blog / *

http: // localhost / site2 / blog / *

...URL любого блога (или администратора, или форумов) любого сайта все еще переписывается для работы с localhost / rewrite.php.

Итак, как мне настроить последнее правило, чтобы оно соответствовало следующим условиям, пожалуйста ...

1.) Первый каталог (site1 или site2 в localhost / site1 / blog) остается динамическим, поэтому я могу добавить третий сайт, если Я хочу, чтобы код по какой-либо причине не корректировался.

2.) Индекс блога (или администратора, или форумов) (например, blog /, forum /, admin /) обрабатывается их собственными модулями, а также всем, что находится внутри этих каталогов (например, admin / 1, admin / test .html) независимо от кода HTTP, 200, 404 и т. д.

3.) Любой URL-адрес, не входящий в список исключений последнего правила, обрабатывается rewrite.php (независимо от кода HTTP, 200, 404 и т. д.).

4.) localhost / site1 / blog / не обрабатывается rewrite.php, а localhost / site1 / random_path не обрабатывается перезаписью модуля блога.

Я буду рад быстро ответить с любыми дальнейшими разъяснениями.

6
задан John 29 November 2011 в 12:45
поделиться