htaccess重写规则阻止访问新添加的php文件

时间:2013-09-29 12:01:08

标签: php html apache .htaccess

我有一个包含htaccess文件的网站。 htaccess有很多代码。当我创建一个新的PHP文件时,它会重定向到另一个页面。所以我检查了我的htaccess文件并删除了一行代码

RewriteRule ^.*\.{1}(htm|html|php)\/?   index.php [L,QSA,NC]

之后该文件可以直接访问。任何人都可以知道上面的htacess的含义,它如何影响新添加的PHP文件。

1 个答案:

答案 0 :(得分:1)

这条规则:

 RewriteRule ^.*\.{1}(htm|html|php)\/?   index.php [L,QSA,NC]

默默转发每个请求URI,其扩展名为.php.htm.htmlindex.php

因此,即使您在正则表达式.php之上添加新的^.*\.{1}(htm|html|php)\/?也会匹配,并且对新创建的文件的请求仍会转发到index.php

PS:虽然在许多前端控制器(如Wordpress,CodeIgnitor,Cake等框架)中使用了类似的规则,但这条规则并没有多大意义。

参考:Apache mod_rewrite Introduction