2016-10-11 46 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