1

だから私は約4,000の製品を持つサイトをやっており、URLは古いサイトから変更されており、それぞれに301のルールを作るのが好きではないので、次のようにしてカテゴリを移動しました(以下の例)

# Main Categories
RewriteRule ^(.*)home-page-categories/name-1\.html$ name-1/ [R=301,NC,L]
RewriteRule ^(.*)home-page-categories/name-2\.html$ name-2/ [R=301,NC,L]
RewriteRule ^(.*)home-page-categories/name-3\.html$ name-3/ [R=301,NC,L]
RewriteRule ^(.*)home-page-categories/name-4\.html$ name-4/ [R=301,NC,L]

したがって、上記はhome-page-categories/name-1.html単一のディレクトリになります/name-1/-素晴らしいです!

# Artist Categories from Root Categories
RewriteRule ^(.*)home-page-categories/name-1/(.*)\.html$ name-1/$2/ [R=301,L]
RewriteRule ^(.*)home-page-categories/name-2/(.*)\.html$ name-2/$2/ [R=301,L]
RewriteRule ^(.*)home-page-categories/name-3/(.*)\.html$ name-3/$2/ [R=301,L]
RewriteRule ^(.*)home-page-categories/name-4/(.*)\.html$ name-4/$2/ [R=301,L]

以上は、次のような二次カテゴリを取得し、/home-page-categories/name-1/example.htmlそれを作成しますname-1/example/-素晴らしいです!

ただし、次のレベルでは、製品名を使用する必要があるため、次のようになります。

/home-page-categories/name-1/example/product.htmlとしますname-1/example/product.htmlが、上記のルールはそれと矛盾する可能性があると思います。

これをすべて処理できるルールに関するアイデアはありますか?

4

2 に答える 2

0

あなたの例に沿ったものにするために、解決策は次のようになります。name-1

RewriteRule home-page-categories/name-1\.html$ /name-1/ [R=301,NC,L]
RewriteRule home-page-categories/name-1/([^/]+)\.html$ /name-1/$1/ [R=301,L]
RewriteRule home-page-categories/name-1/(.*)\.html$ /name-1/$1.html [R=301,L]

達成したいことに応じて、すべてのルールを次のように置き換えることができます

RewriteRule home-page-categories/([^/]+)\.html$ /$1/ [R=301,NC,L]
RewriteRule home-page-categories/([^/]+)/([^/]+)\.html$ /$1/$2/ [R=301,L]
RewriteRule home-page-categories/(.*\.html)$ /$1 [R=301,L]

またはより具体的なルールで

RewriteRule home-page-categories/(name-1|name-2|name-3|name-4)\.html$ /$1/ [R=301,NC,L]
RewriteRule home-page-categories/(name-1|name-2|name-3|name-4)/([^/]+)\.html$ /$1/$2/ [R=301,L]
RewriteRule home-page-categories/((name-1|name-2|name-3|name-4)/.*\.html)$ /$1 [R=301,L]
于 2012-05-15T17:32:11.493 に答える
0

PHPコードでこのタイプの書き換えを行う方が良い解決策だと思います。方法がわからない場合は、この投稿を更新していくつかの例を追加します。

于 2012-05-15T17:51:24.007 に答える