错误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)。

怀特先生

假设.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]

所述$1在反向引用RewriteCond 的TestString(即%{DOCUMENT_ROOT}/$1.php)是一个反向引用到捕获组中的RewriteRule 图案(即(.+)),即。请求的URL路径。这与RewriteRule 替换(即$1.php)中使用的反向引用相同

多一点解释...

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php

根据您的文件结构,此处检查所请求资源文件扩展名是否存在的条件并非严格正确。不一定要检查您最终将在下面重写的文件RewriteRule有关此问题的详细说明,请参见ServerFault问题的回答

L上缺少标志RewriteRule,因此处理将在文件中继续进行,并且可能会再次被重写。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

.htaccess 如何隐藏php扩展名

htaccess重定向隐藏php扩展名或传递参数

如何使用htaccess隐藏php文件扩展名?

.htaccess 隐藏页面扩展名

使用.htaccess隐藏扩展名

隐藏并考虑.php扩展名

使用htaccess隐藏扩展名不起作用

修改我的.htaccess文件以从URL隐藏.php扩展名后,无法找到某些目录项

如何使用 .htaccess 隐藏扩展名并阻止用户使用扩展名 url 访问?

.php扩展名已隐藏时重写URL

如何隐藏我的php文件的扩展名

写htaccess隐藏html文件扩展名+使http转至https +使xyz.com转至www.xyz.com

如何隐藏“动作”扩展名

隐藏PHP扩展名和隐藏子目录都在一个URL中.htaccess中不起作用

我想在编辑器中使用.html扩展名时隐藏.html扩展名

htaccess将文件扩展名从.php更改为.html

使用.htaccess删除.html和.php扩展名

如何使用.htaccess隐藏文件扩展名+限制访问

有没有办法在 html 静态网站上隐藏 .html 扩展名?

在php中列出文件时,如何隐藏.php扩展名?

如何在谷歌应用引擎(云托管)的 URL 中隐藏 .html 扩展名

我需要在apache2.conf上隐藏<php>扩展名的<Directory>

构建应用程序时隐藏.php扩展名的正确方法

htaccess不会删除php扩展名

用htaccess删除.php扩展名

.htaccess RewriteRule .php 扩展名冲突

使用DataTable ColVis扩展名设置隐藏的默认列

如何在QFileSystemModel上隐藏文件扩展名

如何在PCManFM中隐藏某个扩展名的文件