我正试图在我的网站上做一些301 URL重定向,以下是.htaccess文件的前几行:

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]


Redirect 301 /en/home/index.html /index.php?
Redirect 301 /en/about/product.html /shop?
Redirect 301 /en/member/profile.html /index.php?route=account/account

上面的3301条规则都很有效。但当我移除“?”在第一条和第二条规则中,重定向失败。所以在这种情况下,“?”必须在场。
但是,如果我想要没有“?”的格式。,有可能吗?
另外,如果我只是做URL重写,而不是做301重定向,它还会保持以前的SEO成绩吗?

最佳答案

尝试使用mod_rewrite而不是mod_alias:

RewriteRule ^en/home/index.html$ /index.php? [L,R=301]
RewriteRule ^en/about/product.html$ /shop? [L,R=301]
RewriteRule ^en/member/profile.html$ /index.php?route=account/account [L,R=301]

在index.php路由规则之前还需要这些。

关于.htaccess - 301重定向目标网址格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18821293/

10-12 15:00