3

私は mod_rewrite にかなりグリーンです。これの最初の行はチャンピオンのように機能していますが、2番目の部分は協力を拒否しています

RewriteRule ^(.*).html$ $1.php
RewriteRule ^(.*).shtml$ $1.php [R=301,L]

カスタム 404 ページがなくても、.shtmlパーツは見事に 404 で失敗します。これを 1 つのルールにまとめる必要がありますか? 仕事を辞めて、代わりにサルを雇うべきですか?誰かがこれに対する解決策を持っていますか?

ありがとう!

4

1 に答える 1

2

.shtmlと...の両方.htmlをリダイレクトするつもりであると仮定します。.php

これらは両方とも 1 つのルールに結合する必要があります。問題は、エスケープされていない.before.htmlが「任意の文字」を表し、したがって にも一致するため、両方が一致することshtmlです。

パターン\.s?htmlは、リテラル に一致し.、その後にオプション sの が続き、 で終わりhtmlます。

RewriteEngine On
RewriteRule ^(.*)\.s?html$ $1.php [R=301,L]
于 2012-12-13T20:05:59.477 に答える