2016-10-11 72 views
0

我在根目錄中的每個.html文件上都使用了一些動態頁面。確保子目錄不聽mod重寫

通過下面的一行:

RewriteRule ^(.*).html content.php?alias=$1 [L] 

這工作得很好,但我也上了同一位置的其他一些網站,只有少數幾個文件夾下。我不希望他們聽這一行,每次我創建一個.html文件,我都會重定向到我的根目錄下的content.php文件。

例子:我content.php的

地點:

public_html/Website/content.php 

public_html/Website/_intern/websites/index.html 

上述文件被重定向到我的根content.php。

我該如何防止這種情況發生?

回答

0

調整你的正則表達式。代替.*匹配任何內容,您應該使用[^/]+來匹配除/之外的任何內容。這保證,你不會在子目錄中選擇任何內容:

RewriteRule ^([^/]+)\.html$ content.php?alias=$1 [L,QSA,NC] 
+0

我想這樣做,但我得到了另一個國防部重寫其與_到content.php一個我測試有下劃線這樣的URL重定向如何更改該行以使用下劃線?喜歡這個? :'^([_^/] +)。html $ content.php?alias = $ 1 [L,QSA,NC]' – twan

+0

如果我沒有錯誤,你的行不應該聽任何子目錄,是一個仍然監聽的子目錄:'RewriteRule^_(。*)/(。*)。html /lp.php?alias=$2 [L]',即使它位於行後面。 – twan

+0

喲應該首先發布你現有的.htaccess的問題,以便我可以給你相應的建議。也請告訴我什麼是你用來測試這個和什麼不工作的完整的UR? – anubhava