任何人都可以帮我改变旧的动态网址格式吗?
准确地说,我需要在网址中将下划线_更改为连字符,但使用301重定向 在htaccess中重定向,如:
我希望它是:
我知道如何在php中更改它,但我需要使用301重定向从旧的url格式到新的 在htaccess所以我不会在谷歌上失去排名。
以下是当前的htaccess信息:
RewriteRule ^posts/([0-9]+)([-_][^/]*)?/([0-9]+)([-_][^/]*)?/([0-9]+)([-_][^/]*)?\.html index.php?view=showad&adid=$7&cityid=$1 [QSA]
转换为:
我不熟悉mod重写,我猜这个对于那些了解它的人来说很容易因为 所有需要做的就是从_改为 -
答案 0 :(得分:0)
您可以使用此递归规则将_
转换为-
:
RewriteEngine On
# using internal rewrites replace all _ by -
RewriteRule ^([^_]+)_(.+?\.html)$ $1-$2 [NC,DPI,E=underscores:1]
# one final redirect to change URL in browser
RewriteCond %{ENV:underscores} =1
RewriteRule ^([^_]+)$ /$1 [R=302,NE,L]