2

我在隐藏.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>
4

1 回答 1

4

您应该将此代码附加到您的 .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]
于 2013-02-22T18:10:16.643 回答