2017-03-27 5 views
1

rewriteRuleを使用して、古いwebshopのURLを修正して、新しいwebshop(再起動)内で利用できるようにしています。これは正規表現です。htaccessのmod_rewriteモジュールを使用してurlから二重ダッシュを削除します。

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

アイデアは、URLのピリオドを1つのダッシュに変換することです。

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

/Biertischhussen /ディーナ・Biertischhusse-3tlg-SET-アーケード-50x220cm-エクリュ-LANG

rewriteRuleは二重ダッシュが生成されるため、80%しか動作しません...どうすれば修正できますか?

/Biertischhussen /ディーナ・Biertischhusse-3tlg - セットアーケード-50x220cm-エクリュ-LANG/

+0

してみてください。 $ "'と ''(^ *)/([^。])のようなものは、 *)\ .- *([^。] *)$ "' –

+0

ありがとうございました。これはうまくいった。これをあなたの答えにしてください、私はそれを受け入れます。 – Jabb

+0

それはあなたのために働いてうれしい。私の答えがあなたにとって有益であると証明された場合は、upv​​otingも検討してください。 –

答えて

0

あなたは\.+後に消費する-*パターンを追加した場合、すべての既存の-シンボルがマッチしてしまいます、交換の結果として取り除かれる(それらは捕捉されないので、すなわち(...)の内側にはない)。ドットの後に、既存のすべての `-`sを消費するために、ドットマッチングパターンの後に` * - `追加

使用

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

"^(.*)/([^.]*)\.-*([^.]*)$" 
       ^^ 
関連する問題