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

时间:2013-02-18 21:01:47

标签: .htaccess mod-rewrite wampserver file-extension

我在隐藏我网站上的.html扩展程序时遇到了一些问题。 我正在使用Apache V.2.2.22在WampServer上运行。 rewrite_module处于有效状态,我已将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>

它不起作用,我不知道为什么......这是我的httpd.conf文件

DocumentRoot "c:/wamp/www/"

<Directory />
    Options FollowSymLinks
    AllowOverride all
    Order deny,allow
    Deny from all
</Directory>

<Directory "c:/wamp/www/">
    Options Indexes FollowSymLinks
    AllowOverride all

#   onlineoffline tag - don't remove
    Order Allow,Deny
    Allow from all

</Directory>

这就是我放置.htaccess文件的位置......

E:\wamp\www\DesktopVersion\.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>

1 个答案:

答案 0 :(得分:3)

您应该在.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]