为了账号安全,请及时绑定邮箱和手机立即绑定

错误htaccess隐藏php扩展名,只需隐藏html

错误htaccess隐藏php扩展名,只需隐藏html

PHP
白猪掌柜的 2022-08-19 10:50:02
我有一个问题,使用htaccess在我的网站上隐藏php扩展。我看到很多网络试图修复它,什么都没有。但是只有html扩展名对我来说是隐藏的。在我的htaccess上,我有这个来隐藏扩展名(它是在错误页面之后,我的htaccess上的第一个,但我认为这不会影响):#hide extensions RewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME}.html -fRewriteRule ^(.*)$ $1.htmlRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME}.php -fRewriteRule ^(.*)$ $1.php我可以访问没有扩展名的html文件,但对于php文件,我不能(404)。我删除了htaccess文件并再次创建它,但什么都没有。当然,在php和html文件的链接上,我不会放置扩展名(例如url/file而不是url/file.php)。
查看完整描述

1 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

假设您的文件位于站点的文档根目录中,请尝试以下操作:.htaccess


Options -MultiViews


RewriteEngine On


RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{DOCUMENT_ROOT}/$1.html -f

RewriteRule (.+) $1.html [L]


RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{DOCUMENT_ROOT}/$1.php -f

RewriteRule (.+) $1.php [L]

TestString中的反向引用(即)是对模式中捕获的组(即)的反向引用。请求的 URL 路径。这与替换中使用的反向引用相同(即 )。$1RewriteCond%{DOCUMENT_ROOT}/$1.phpRewriteRule(.+)RewriteRule$1.php


更多解释...


RewriteCond %{REQUEST_FILENAME}.php -f

RewriteRule ^(.*)$ $1.php

此处检查所请求资源是否存在以及文件扩展名的条件严格正确,具体取决于您的文件结构。它不一定检查您最终将在以下部分中重写的同一文件。请参阅我对此服务器故障问题的回答,以获取对此的详细说明。RewriteRule


上缺少该标志,因此处理将继续通过文件进行,并可能再次重写。LRewriteRule


MultiViews需要禁用(如果尚未禁用)才能成功处理重写。这可能不会影响您目前,但是如果您的重写包含URL参数;他们会失踪。(MultiViews 的效果是,mod_negotation将在处理mod_rewrite指令之前发出内部子请求。file.php


查看完整回答
反对 回复 2022-08-19
  • 1 回答
  • 0 关注
  • 122 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信