0

以下の多くのURLをリダイレクトする必要があります。

www.example.com/test1/test2/P-b1_l1_id_c1_c1-10551-10051-74560-enからwww.example.com/test1/test2/P-b1_l1_id_c1_c1-10551-10551-74560-en _ _

10051から10551に変更するだけです。

単純なリダイレクトを行うこともできましたが、同じ要件を持つURLが多数あります。したがって、URLに10551-10051-が含まれるすべてのページについて、10551-10051-から10551-10551-に置き換えることができる解決策があるかどうかを調べます。

前もって感謝します!!!

4

1 に答える 1

1

ルートディレクトリの.htaccessファイルでmod_rewriteディレクティブを使用するアイデアを次に示します。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /(.*)-10551-10051-(.*)/?
RewriteRule .*   %1-10551-10551-%2   [R=301,L]

アップデート

# Enable rewriting engine
RewriteEngine On
# Specify the URL prefix
RewriteBase /
# Prevent loops
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Match any URL the holds this string: -10551-10051-, splitting it in 3 parts
# The segment before the string to match, the string itself and the next segment up to the first slash or nothing 
RewriteCond %{REQUEST_URI} ^/(.*)-10551-10051-([^/]+)/?
# Assemble the substitution URL like this: first segment-modified string-last segment. Rewrite.
RewriteRule .*   %1-10551-10551-%2   [R=301,L]

これはリダイレクトされます

http://example.com/Folder1/Folder2/anything1-10551-10051-anything2

に:

http://example.com/Folder1/Folder2/anything1-10551-10551-anything2

永続的で目に見えるリダイレクトが必要だと思いました。そうでない場合はR=301[R=301,L]

于 2013-01-21T11:13:13.380 に答える