使用htaccess修复url错误

时间:2015-04-15 23:58:19

标签: .htaccess

所以推出了一个网站并且错误地使用链接并且没有正确地构建它。由于Google中已经收集了相当多的链接,因此我需要永久重定向错误的链接,而不会影响正确的链接,并且不确定如何正确完成。

我的链接应该是这样的:/compare/itemname.html

但是由于错误,他们在Google中出现如下:  / compare / itemname(不包含.html部分)

这只是因为我在创建链接时错过了.html 现在动态地修复了这个位。

这是我的htaccess并且工作正常:

RewriteCond %{THE_REQUEST} \ /+index\.php\?keyword=([^&\ ]+)
RewriteRule ^ /compare/%1.html? [L,R]
RewriteRule ^compare/([^/]*)\.html$ /index.php?keyword=$1 [NC,L]

那么如何从/ compare / itemname更改为/compare/itemname.html itemname可以更改的地方 - 而不会弄乱上面的代码 htaccess的

或者在这个阶段只是为了进行301重定向以及再次如何更好 我会选出缺少.html的网址名称吗?

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

在/ compare / dir

中试试这个.htaccess
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ http://www.example.com/compare/$1\.html [L,R=301]

答案 1 :(得分:1)

您可以添加新的重定向规则来添加.html

RewriteCond %{THE_REQUEST} \ /+index\.php\?keyword=([^&\ ]+)
RewriteRule ^ /compare/%1.html? [L,R]

RewriteRule ^(compare/[^.]+)/?$ /$1.html [NC,L,R]

RewriteRule ^compare/([^.]+)\.html$ /index.php?keyword=$1 [NC,L,QSA]