.htaccess拒绝除了一个具有重写规则的文件之外的所有文件

时间:2014-10-20 22:01:04

标签: php apache .htaccess rewrite

实际上我的.htaccess文件存在问题。 这是我的.htaccess文件的内容:

RewriteEngine on  
RewriteRule ^put$ put.php 

Order Allow,Deny
<FilesMatch "^put\.php$">
Allow from all
</FilesMatch>

此文件所在的文件夹也是文件put.php。 我想拒绝此文件夹中的所有内容,除了put.php此文件应该只在domain.com/folder/put处可用。 但它实际上做的是,一切都被拒绝了,putput.php也有效。我该如何解决这个问题?

提前致谢!

1 个答案:

答案 0 :(得分:1)

尝试使用mod_rewrite。可能是文件匹配正在拒绝/put请求,因此mod_rewrite无法重写它。

尝试:

RewriteEngine on  
RewriteRule ^put$ put.php [L]
RewriteRule !^put(\.php)?$ - [L,F]

RewriteCond %{THE_REQUEST} /put\.php
RewriteRule ^put\.php$ - [L,F]