1

サイトを Joomla から WordPress に移行したところ、すべてうまくいきましたが、URL から日付と時刻のブロックを削除するルールが必要です。

昔のURLはこんな感じ

domain.tld/201009081045/category/subcategory/article.html

これで.html部分を削除しました:

#BEGIN sjebani linkovi fix
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)$ $1.html [L,QSA]

#301 da izbaci html
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*\.html\ HTTP/
RewriteRule ^(.*)\.html$ /$1 [R=301,L]
#END sjebani linkovi fix

そして、これで最初の数字ブロックを削除しようとしました:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule /^[0-9]{6-13}$ /$1 [R=301,L]

私のロジックは、アクティブな日付アーカイブ (domain.tld/2008/12/01 など) が必要なため、6 文字より長く 13 文字より短い数字のみを含む文字列を見つけることです。

mod_rewrite で最初の番号ブロックを削除するにはどうすればよいですか?

4

1 に答える 1

1

あなたの正規表現は少し不安定で、後方参照が機能するためには、日付の後にあるすべてのものを一致させる必要があります$1:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^[0-9]{6,13}/(.*)$ /$1 [R=301,L]
于 2013-10-09T03:28:37.380 に答える