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

我有一个问题,使用htaccess在我的网站上隐藏php扩展。我看到很多网络试图修复它,什么都没有。但是只有html扩展名对我来说是隐藏的。


在我的htaccess上,我有这个来隐藏扩展名(它是在错误页面之后,我的htaccess上的第一个,但我认为这不会影响):


#hide extensions 

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME}.html -f

RewriteRule ^(.*)$ $1.html


RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME}.php -f

RewriteRule ^(.*)$ $1.php

我可以访问没有扩展名的html文件,但对于php文件,我不能(404)。


我删除了htaccess文件并再次创建它,但什么都没有。当然,在php和html文件的链接上,我不会放置扩展名(例如url/file而不是url/file.php)。


白猪掌柜的
浏览 123回答 1
1回答

噜噜哒

假设您的文件位于站点的文档根目录中,请尝试以下操作:.htaccessOptions -MultiViewsRewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{DOCUMENT_ROOT}/$1.html -fRewriteRule (.+) $1.html [L]RewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{DOCUMENT_ROOT}/$1.php -fRewriteRule (.+) $1.php [L]TestString中的反向引用(即)是对模式中捕获的组(即)的反向引用。请求的 URL 路径。这与替换中使用的反向引用相同(即 )。$1RewriteCond%{DOCUMENT_ROOT}/$1.phpRewriteRule(.+)RewriteRule$1.php更多解释...RewriteCond %{REQUEST_FILENAME}.php -fRewriteRule ^(.*)$ $1.php此处检查所请求资源是否存在以及文件扩展名的条件严格正确,具体取决于您的文件结构。它不一定检查您最终将在以下部分中重写的同一文件。请参阅我对此服务器故障问题的回答,以获取对此的详细说明。RewriteRule上缺少该标志,因此处理将继续通过文件进行,并可能再次重写。LRewriteRuleMultiViews需要禁用(如果尚未禁用)才能成功处理重写。这可能不会影响您目前,但是如果您的重写包含URL参数;他们会失踪。(MultiViews 的效果是,mod_negotation将在处理mod_rewrite指令之前发出内部子请求。file.php
打开App,查看更多内容
随时随地看视频慕课网APP