我们有一个网站,不幸的是所有的网址都有.html
后缀,它是一个Magento安装,Magento允许你在CMS上改变它,但不幸的是,所有这些网址后缀为.html
在Google中排名很好。我们需要重定向到非.html
。从重定向的URL中删除.html
因此,请考虑以下情况,我们从头开始重建此网站,因此我们在新网站上使用相同的网址,但没有.html后缀。
- 现在是:
www.example.de/cool-shoes.html
- 将是:
www.example.de/cool-shoes
所以www.example.de/cool-shoes.html
将不再存在,我一直在试图与的.htaccess没有运气重定向。
我试过到目前为止:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*\.html\ HTTP/
RewriteRule (.*)index\.html$ /$1 [R=301,L]
和:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
,但它似乎没有工作...任何想法?
你好,只是为了澄清我的疑问,这条规则在做什么?它不是说第一个参数是你从请求中接收到的表达式,第二个参数是你将发送给apache的那个表达式?他们应该被切换 - > ^(。*)$ 1.html – alexserver 2013-09-26 05:07:35
该规则是删除'.html'。第一部分是它匹配的内容:任何具有'.html'的url。 '$ 1'是匹配的括号中的内容:除'.html'之外的所有内容。 – 2016-08-18 09:34:55
我会添加'$'来确保'.html'出现在URL的末尾:'redirectMatch 301 ^(。*)\。html $ $ 1' – 2016-08-18 09:49:29