2017-03-27 97 views
1

我正在使用rewriteRule修復舊網店中的一些網址,以便在新網店(重新啓動)中使用它們。這是正則表達式。使用mod_rewrite模塊在htaccess中刪除雙破折號

#change period to dash 
RewriteRule "^(.*)/([^.]*)\.+([^.]*\..*)$" $1/$2-$3 [L,NC] 
RewriteRule "^(.*)/([^.]*)\.([^.]*)$" $1/$2-$3 [L,NC,R=302] 

這個想法是將url中的句點轉換爲單個短劃線。

/Biertischhussen/Dena-Biertischhusse-3tlg.-Set-Arcade-50x220cm-ecru-lang

/Biertischhussen /德納 - Biertischhusse-3tlg - 設置 - 街機50x220cm-本色琅

雖然rewriteRule只能工作80%,因爲它會產生雙破折號......我該如何解決這個問題?

/Biertischhussen /德納 - Biertischhusse-3tlg - 設置 - 街機50x220cm-本色琅/

+0

嘗試增加' - *'後點匹配模式消耗點之後的所有現有'-'s。類似於「^(。*)/([^。] *)\。+ - *([^。] * \ .. *)$」'和'「^(。*)/([^。] *)\ .- *([^。] *)$「' –

+0

謝謝。這工作。隨時讓這個答案,我會接受它。 – Jabb

+0

很高興爲你效勞。如果我的回答對你有幫助,也請考慮積極投票。 –

回答

0

如果\.+後添加食用-*模式,所有現有-符號將得到匹配,並因此會因替換而被移除(因爲它們未被捕獲,即它們不在(...)內)。

使用

"^(.*)/([^.]*)\.+-*([^.]*\..*)$" 
        ^^ 

"^(.*)/([^.]*)\.-*([^.]*)$" 
       ^^