【问题标题】:Remove php extension but deny direct access删除 php 扩展但拒绝直接访问
【发布时间】:2011-05-06 10:50:09
【问题描述】:

我想用 htaccess 删除 php 扩展,但也拒绝所有对 php 文件的直接访问。因此,如果您编写 www.site.com/test ,则可以,而 www.site.com/test.php 则无法访问! 谢谢

【问题讨论】:

    标签: php apache .htaccess


    【解决方案1】:

    我知道这是一个老问题,但我想做同样的事情并最终使用 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]
    

    【讨论】:

      猜你喜欢
      • 2011-11-29
      • 2012-12-27
      • 2017-10-22
      • 1970-01-01
      • 2010-11-23
      • 1970-01-01
      • 2011-11-09
      • 2014-08-28
      • 2023-04-02
      相关资源
      最近更新 更多