次のURL構造を持つディレクトリWebサイトがあります。
http://mywebsite.com/information/business-name/
http://mywebsite.com/information/business-name/product-names/
http://mywebsite.com/reviews/business-name/
http://mywebsite.com/comments/business-name/
今、ビジネス名に変更があり、これらのURLを変更したい-
http://mywebsite.com/information/new-business-name/
http://mywebsite.com/information/new-business-name/product-names/
http://mywebsite.com/reviews/new-business-name/
http://mywebsite.com/comments/new-business-name/
古いURLをhtaccessファイルの新しいURLに301リダイレクトするにはどうすればよいですか?
現在、私は一時的に次のものを使用しています-
RewriteRule ^information/business-name/(.*)$ /information/new-business-name/$1 [R=301,L]
RewriteRule ^reviews/business-name/(.*)$ /reviews/new-business-name/$1 [R=301,L]
RewriteRule ^comments/business-name/(.*)$ /comments/new-business-name/$1 [R=301,L]
/business-name/
を/new-business-name/
に変更するだけで、1つのルールで書き換える方法はありますか?
これらの3つのルールを1つに結合するには、キャプチャグループで代替(垂直バー付き)を使用し、代替で別の後方参照を使用できます。
例えば:
RewriteRule ^(information|reviews|comments)/business-name/(.*)$ /$1/new-business-name/$2 [R=301,L]
$1
は、「情報」、「レビュー」、または「コメント」への後方参照になりました。
状況に応じて、これをより一般的にすることができます。
RewriteRule ^([^/]+)/business-name/(.*)$ /$1/new-business-name/$2 [R=301,L]
これは、「情報」、「レビュー」、「コメント」など、「/ business-name /」の前にある単一のサブディレクトリanyに一致します。