0

再構築中の古いサイトがあります。フォルダー構造を使用する代わりに、サブドメインを使用しています。セグメントは異なりますが、リダイレクト自体は非常に単純です。私はそれを次のように処理できます:

RewriteRule ^segment/blog/view$ http://blogs.site.com/segment/article [R=301,NE,NC,L]
RewriteRule ^segment/blog$ http://blogs.site.com/segment [R=301,NE,NC,L]

したがって、www.site.com/segment/blog があった場合、blogs.site.com/segment に移動します。www.site.com/segment/blog/view/catchy_name_goes_here があった場合、現在は blogs.site.com/segment/article/catchy_name_goes_here にリダイレクトされ、ここに移動する必要があります: blogs.site.com/segment/article /catchy-name-goes-here.

私の問題は、URI のセパレーターを変更するという決定に起因しています。古い記事はアンダースコア '_' で作成され、新しい記事はハイフン '-' で作成されています。

記事のタイトルのアンダースコアをハイフンに置き換えるにはどうすればよいですか?

4

2 に答える 2

0

次のルールを試してください。

RewriteRule ^/segment/blog$ http://blogs.site.com/segment [R,I,L]

# replace _ by - repeatedly
RewriteRule ^(/segment/blog/view)/([^_]*)_+(.*)$ /$1/$2-$3 [I,N,U]

# all _s gone, now do a redirect
RewriteRule ^/segment/blog/view/([^_]+)$ http://blogs.site.com/segment/article/$1  [R,I,L,U]
于 2013-11-18T17:34:24.187 に答える