gpt4 book ai didi

php - 错误 htaccess 隐藏 php 扩展,只隐藏 html

转载 作者:行者123 更新时间:2023-12-04 10:41:17 24 4
gpt4 key购买 nike

我在使用 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 中,不一定要检查您最终将要重写的同一个文件.见 my answerthis ServerFault question对此的详细解释。
L RewriteRule 上缺少标志,因此处理将通过文件继续进行,并且可能会再次被重写。
MultiViews需要禁用(如果尚未禁用)才能成功处理重写。这目前可能不会影响您,但如果您的重写包含 URL 参数;他们会失踪。 (MultiViews 的效果是 mod_negotation 会在处理 mod_rewrite 指令之前发出对 file.php 的内部子请求。)

关于php - 错误 htaccess 隐藏 php 扩展,只隐藏 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59919247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com