2017-02-21 48 views
0

我有.htaccess文件是基於檢測進入的URI,並以「的index.php」前綴成功重定向請求笨,就像這樣:如何在.htaccess中排除某些URI Apache的mod_rewrite的(Apache 2.2的)

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文件所在的位置,並且在httpd.conf中的LoadModule指令中被引用了。查看REQUEST_URI並查看它是否以「mymodule」開頭並不適合? – k0d3g3ar

回答

0

要排除任何東西開始mymodule,在RewriteRule

RewriteCond %{REQUEST_URI} !^/mymodule 

另一種方法的前面添加另一個條件(雖然我沒有試過還)可以關掉mod_rewriteLocation指令

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