我正在尝试在我的网站上进行一些301网址重定向,这里是.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
以上所有3 301条规则都可以。但当我删除“?”在第一和第二规则,重定向失败。所以在这种情况下,“?”必须在场。
但是,如果我希望格式没有“?”,是否可以?
另外,如果我只是重写url,但不做301重定向,它还能保持以前的seo成就吗?
答案 0 :(得分:0)
尝试使用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路由规则之前使用这些规则。