我正在構建一個自動加載php函數的站點,以檢查控制器中是否存在類名。這個函數在index.php中,並且運行在網站上的每個網址上,然後根據情況用php重定向。從htaccess mod中刪除一個子目錄改寫
我已將一個新的子目錄添加到稱爲引擎的文檔根目錄中。在這個子目錄中,有一些獨立的類需要運行,而不需要通過文檔根目錄下的index.php中的自動加載功能。
我正在尋找一個.htaccess規則,它允許我從默認的重寫規則中加載index.php來排除引擎子目錄及其中的所有文件/文件夾。
下面是我的.htaccess文件的示例,顯示了我嘗試的3個不同的排除規則。
規則2和規則3沒有任何影響。規則1將引擎子目錄內的所有請求重定向到該子目錄中的index.php。當使用規則1時,似乎丟失了請求uri的其餘部分。
例如,如果我想加載engine/subfolder/lib/file.php規則,只需將我發送到engine/index.php。我想我可能會在規則中缺少一些需要附加其餘請求URI的規則。
Options +FollowSymLinks
RewriteEngine on
#rule 1
RewriteCond %{REQUEST_URI} !^/engine
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ engine [L,QSA]
#rule 2
RewriteRule ^(engine)($|/) - [L]
#rule 3
RewriteRule ^(engine).* - [NC,L]
RewriteRule ^([^/\.]+).html$ index.php?controller=contents&method=viewGeneric&view=generic&link=$1 [L]
RewriteRule ^(/)?$ index.php?controller=contents&method=viewHome&view=home [L,QSA] # Default load
TL; DR所以我的問題是:我該如何排除目錄從我的htaccess規則