Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess隐藏文件扩展名不工作(WampServer)_.htaccess_Mod Rewrite_Wampserver_File Extension - Fatal编程技术网

.htaccess隐藏文件扩展名不工作(WampServer)

.htaccess隐藏文件扩展名不工作(WampServer),.htaccess,mod-rewrite,wampserver,file-extension,.htaccess,Mod Rewrite,Wampserver,File Extension,我在我的网站上隐藏.html扩展时遇到了一些问题。 我使用Apache V.2.2.22在WampServer上运行。 rewrite_模块处于活动状态,我已将httpd.conf文件更改为AllowOverride all 这是我所知道的唯一一个htaccess文件,它包含的全部内容 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{THE_REQU

我在我的网站上隐藏.html扩展时遇到了一些问题。 我使用Apache V.2.2.22在WampServer上运行。 rewrite_模块处于活动状态,我已将httpd.conf文件更改为AllowOverride all

这是我所知道的唯一一个htaccess文件,它包含的全部内容

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.html [NC]
RewriteRule ^ %1 [R=301,L,NC]
</IfModule>
这就是我放置.htaccess文件的地方

任何关于为什么这不起作用的建议都会很好

编辑:只是为了澄清这是正确的。htaccess代码使用。。。 “anubhava”的补语

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.html [NC]
RewriteRule ^ %1 [R=301,L]

RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^ %{REQUEST_URI}.html [L]
</IfModule>

您应该在.htaccess中附加此代码:

# To externally redirect /dir/foo.html to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.html [NC]
RewriteRule ^ %1 [R=301,L]

# To internally forward /dir/foo to /dir/foo.html
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^ %{REQUEST_URI}.html [L]

您应该在.htaccess中附加此代码:

# To externally redirect /dir/foo.html to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.html [NC]
RewriteRule ^ %1 [R=301,L]

# To internally forward /dir/foo to /dir/foo.html
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^ %{REQUEST_URI}.html [L]


只要您有第二个目录块,为您的web根目录设置Allow Override All,并且您正在访问的文件位于该文件夹而不是主根目录中,则根目录/上的Allow Override None不会有问题。您是否已尝试删除标记的htaccess文件?很高兴知道它是否因为测试失败而被绕过。您好,谢谢您的评论。我不确定你的意思,所以我在我的问题中添加了更多的httpd.conf文件。我还将Apache的版本更改为最新版本。如果你能重读我的问题,看看是否有什么不对劲,那就太好了。非常感谢,Chris Edit:我试图取出标签,但仍然没有任何结果:/你能在你的htaccess文件中放入一些垃圾,并检查你是否得到了这个问题答案中建议的500个响应,以验证你的htaccess文件是否正在使用?好的,我这样做了,我确实得到了500个错误,因此它正在读取文件。。。现在怎么办?当你说这段代码不起作用时,你是说你正在键入,比如说www.mysite.com/index.html,而它没有变为www.mysite.com/index?或者,当您访问www.mysite.com/index时,它会给您一个404?,只要您有第二个目录块为您的web根目录设置Allow Override All,并且您正在访问的文件位于该文件夹而不是主根目录中,根目录上的Allow Override None/就不会有问题。您是否已尝试删除标记的htaccess文件?很高兴知道它是否因为测试失败而被绕过。您好,谢谢您的评论。我不确定你的意思,所以我在我的问题中添加了更多的httpd.conf文件。我还将Apache的版本更改为最新版本。如果你能重读我的问题,看看是否有什么不对劲,那就太好了。非常感谢,Chris Edit:我试图取出标签,但仍然没有任何结果:/你能在你的htaccess文件中放入一些垃圾,并检查你是否得到了这个问题答案中建议的500个响应,以验证你的htaccess文件是否正在使用?好的,我这样做了,我确实得到了500个错误,因此它正在读取文件。。。现在怎么办?当你说这段代码不起作用时,你是说你正在键入,比如说www.mysite.com/index.html,而它没有变为www.mysite.com/index?或者当你访问www.mysite.com/index时,它会给你一个404?我试过了,但它给了我500个错误?奇怪的是,有一次我把这个绑起来,然后又回来了;原始代码有效吗?无论如何,欢呼似乎解决了我的问题:Laww damm它在其他浏览器中不起作用。。。现在该怎么办?你的代码似乎工作正常,因为它在最后删除了.html,但随后出现了500个错误?请将你最新的.htaccess粘贴到你的问题中,然后我可以建议你在那里进行修复。好的,明白了,我没有要求你删除现有的重写代码,这就是我编写append的原因。你也需要你现有的规则。哦,对了,抱歉误解了。新的答案很好用!非常感谢你的帮助,我试过了,但它给了我500个错误?奇怪的是,有一次我把这个绑起来,然后又回来了;原始代码有效吗?无论如何,欢呼似乎解决了我的问题:Laww damm它在其他浏览器中不起作用。。。现在该怎么办?你的代码似乎工作正常,因为它在最后删除了.html,但随后出现了500个错误?请将你最新的.htaccess粘贴到你的问题中,然后我可以建议你在那里进行修复。好的,明白了,我没有要求你删除现有的重写代码,这就是我编写append的原因。你也需要你现有的规则。哦,对了,抱歉误解了。新的答案很好用!非常感谢你的帮助
# To externally redirect /dir/foo.html to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.html [NC]
RewriteRule ^ %1 [R=301,L]

# To internally forward /dir/foo to /dir/foo.html
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^ %{REQUEST_URI}.html [L]