我在隐藏我网站上的.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>
答案 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]