【发布时间】:2011-05-06 10:50:09
【问题描述】:
我想用 htaccess 删除 php 扩展,但也拒绝所有对 php 文件的直接访问。因此,如果您编写 www.site.com/test ,则可以,而 www.site.com/test.php 则无法访问! 谢谢
【问题讨论】:
我想用 htaccess 删除 php 扩展,但也拒绝所有对 php 文件的直接访问。因此,如果您编写 www.site.com/test ,则可以,而 www.site.com/test.php 则无法访问! 谢谢
【问题讨论】:
我知道这是一个老问题,但我想做同样的事情并最终使用 zerkms 的答案,但修改后它不会破坏索引并且在查找文件时不会破坏循环不存在。这是有效的代码,使用“error.php”作为我的错误页面而不是 403.html。
RewriteEngine on
#specify the error page
ErrorDocument 404 /error.php?e=404
ErrorDocument 403 /error.php?e=403
ErrorDocument 401 /error.php?e=401
#prevent redirect loops
RewriteCond %{ENV:REDIRECT_STATUS} !^$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* /error.php [L]
#redirect to .php files but prevent direct access
RewriteRule ^$ index.php [L,QSA]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*)/$ $1/index.php [L,QSA]
RewriteCond %{THE_REQUEST} \.php
RewriteCond %{REQUEST_FILENAME} !error.php$
RewriteRule .* /error.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !\.php$
RewriteRule (.*) $1.php [L,QSA]
【讨论】: