1

これができるかどうかを理解しようとして、頭が痛くなりました。最近移行されたフォーラムがあり、何千もの壊れたダイナミック リンクが残っています。

一般的な URL は次のようになります。

http://domain.com/Forum_Name/b10001/25/
('b10001' はフォーラム ID 番号を表し、最後の数字はページ番号を表します。)

新しい URL は次のようにフォーマットされます。

http://domain.com/forums/Forum_Name.10001/
(ページ番号はありません。また、ID 番号の前に「b」がないことに注意してください。)

これを達成できる書き換えルールはありますか?

4

2 に答える 2

1

私はリライターではありませんが、ここで読んだ内容に従って、次のように機能するはずです。

RewriteRule    ^([A-Za-z0-9-]+)/b([0-9])+(/[0-9]+)?/?.*$    forums/$1.$2/   [NC,L]

^([A-Za-z0-9-]+)「英数字の文字列で始まります」と言うと、/b定数、[0-9]+(1桁以上)、オプションの/ 1桁以上の数字(ページ番号、(/[0-9]+)?)が続き、最後にオプションのスラッシュ(/?$)。

URLがそのパターンに一致する場合は、に書き換えられforums/$1\.$2/ます。\.ドットをエスケープし(ワイ​​ルドカードです)、$1パターンの最初の一致(フォーラム名である最初の英数字の文字列)であり$2、2番目の一致、つまり。の後の数字bです。

最後に、NCパターンは大文字と小文字を区別Lせず、「最後」であることを意味します。したがって、他のルールを処理しません。それはあなた次第だと思います。リンクされた記事を読んで、必要なフラグを選んでください:)

編集:http : //htaccess.madewithlove.be/でパターンチェックを修正

于 2012-11-12T06:15:54.513 に答える
0

あなたが探しているのは

RewriteRule ^([a-zA-Z0-9_]+)/b([0-9]+)/.*$ forums/$1/$2/

[] 部分の内容が、フォーラムの名前と ID に使用している形式と一致していることを確認してください。

パラメータについては、おそらくR=301永続的なリダイレクトを強制する必要があります。

于 2012-11-12T06:21:35.237 に答える