我想重写两个
www.mywebsite.com/example www.mywebsite.com/example /
到
mywebsite.com/example.shtml
我在.htaccess中使用以下规则:
RewriteEngine On
# remove slash if not directory
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /$
RewriteRule (.*)/ $1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.shtml -f
RewriteRule ^(.*)$ $1.shtml
然而,这不起作用,我得到内部服务器错误。如果我只有以下规则:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.shtml -f
RewriteRule ^(.*)$ $1.shtml
然后 www.mywebsite.com/example 重新写入 mywebsite.com/example.shtml ,但是当我请求www.mywebsite时出现内部服务器错误的.com /示例/。
请告知
答案 0 :(得分:0)
请尝试以下规则:
Options -MultiViews
RewriteEngine On
# remove slash if not directory
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [NE,R=302,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.shtml -f
RewriteRule ^(.+?)/?$ $1.shtml [L]
在测试此更改之前,请完全清除浏览器缓存。