我正在使用rewriteRule来修复旧网店的一些网址,以便在新的网上商店(重新启动)中使用它们。这是正则表达式。
#change period to dash
RewriteRule "^(.*)/([^.]*)\.+([^.]*\..*)$" $1/$2-$3 [L,NC]
RewriteRule "^(.*)/([^.]*)\.([^.]*)$" $1/$2-$3 [L,NC,R=302]
我们的想法是将网址中的句点转换为单个短划线。
/Biertischhussen/Dena-Biertischhusse-3tlg.-Set-Arcade-50x220cm-ecru-lang
/ Biertischhussen /德娜-Biertischhusse-3tlg-SET-街机50x220cm-本色琅
rewriteRule只能工作80%,因为它产生双破折号...我该如何解决这个问题?
/ Biertischhussen /德娜-Biertischhusse-3tlg - 设置-街机50x220cm-本色琅/
答案 0 :(得分:0)
如果您在-*
之后添加消费\.+
模式,则所有现有-
符号都会匹配,因此会因替换而被删除(因为它们未被捕获) ,即它们不在(...)
)内。
使用
"^(.*)/([^.]*)\.+-*([^.]*\..*)$"
^^
和
"^(.*)/([^.]*)\.-*([^.]*)$"
^^