2017-02-21 29 views
0

У меня есть файл .htaccess, который успешно перенаправление запросов на основе обнаружения входящего URI и префиксы с «index.php» для Codeigniter, например так:Как исключить определенный URI из Apache mod_rewrite (Apache 2.2) в .htaccess

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?/$1 [L] 

Я сейчас только строю индивидуальные модули Apache, и мне нужно исключить любой запрос URI к этому модулю. Мой httpd.conf покажет что-то вроде:

LoadModule my_module  modules/libmod_my.so 
<Location /mymodule> 
    SetHandler mod_my-handler 
</Location> 

Это должно работать нормально, но правило .htaccess ловит любой запрос к/MyModule и превратить его в /index.php/mymodule

.htaccess, правила успешно обходят любой запрос в действительный файл (графика, css, js и т. д.).

Каков наилучший способ изменить .htaccess также иметь его обойти любой запрос, как это:

http://localhost/mymodule/function

так, что любой запрос к/MyModule исключается от изменения?

Заранее благодарим за любые предложения.

+0

Спасибо, но это не сработало. Здесь нет ничего в запросе «модулей». Это просто место, где файл .so живет и упоминается в директиве LoadModule в httpd.conf. Не было бы более уместным взглянуть на REQUEST_URI и посмотреть, начинается ли он с «mymodule»? – k0d3g3ar

ответ

0

Чтобы исключить что-либо, начиная с mymodule, добавить еще одно условие перед RewriteRule

RewriteCond %{REQUEST_URI} !^/mymodule 

Другой подход (хотя я не пробовал еще) может быть выключить mod_rewrite внутри Location Директива

<Location /mymodule> 
    SetHandler mod_my-handler 
    RewriteEngine off 
</Location>