目前,我使用htaccess拒绝访问目录中的任何PHP文件,但拒绝访问同一目录中的JS、PNG、CSS文件。
Order deny,allow
Deny from all但是,如果我想为一个文件(例如“foobar.php”)破例怎么办?我可以在一个htaccess中写多个语句吗?执行的顺序是什么?
发布于 2019-11-17 22:44:25
我可以在一个htaccess中写多个语句吗?
可以,停那儿吧。相同上下文中的多个容器(即。.htaccess)按顺序合并。因此,您可以阻止所有的.php文件,并允许一个特定的foobar.php文件-按照这个顺序。
例如:
# Block all ".php" files
Order deny,allow
Deny from all
# Permit a specific ".php" file
Order deny,allow
Allow from all或者,您可以使用单个容器,并在regex中使用负前瞻性来排除特定文件:
# OR use a negative lookahead...
Order deny,allow
Deny from all负前瞻性断言(?!foobar\.php$)确保正则表达式与foobar.php不匹配,同时匹配所有其他.php文件。
请注意,Order、Deny、Allow严格来说是Apache2.2指令。如果您使用Apache2.4,那么您可能应该分别将其更改为Require all denied和Require all granted (前提是您已经在整个系统中更改为mod_authz_core )。
还请注意,容器应用于当前目录和所有子目录。
https://webmasters.stackexchange.com/questions/126222
复制相似问题