1

質問のタイトルが悪いのでごめんなさい。

私の質問は、次の3つのURLパターンに対してのみ内部書き換えを実行したいということです

localhost/abc
localhost/def
localhost/xyz

置換は:

localhost/stackoverflow/abc
localhost/stackoverflow/def
localhost/stackoverflow/xyz

文字列のいずれかに対して正規表現を書き込もうとしました-^(。*)$。RewriteRuleは以下のとおりです

RewriteRule  ^(.*)$ /stackoverflow/$1

しかし、それは無限ループで実行され、URLを検索します

localhost/stackoverflow/abc/abc/abc/abc...

3つの文字列のいずれか1つだけを検出する正規表現が必要です->"abc"、 "def"、 "xyz"は、最終的なURLに追加されます

4

1 に答える 1

3

これらの文字列のみを検出する適切な方法は、それらをORグループで囲むこと(abc|def|xyz)です。

RewriteEngine On
RewriteRule ^(abc|def|xyz)$ stackoverflow/$1 [L]

を含むすべて(.*)に一致するため、あなたの試みは書き換えループに投げ込まれました。グループの前にを付けると、URIの先頭でのみ一致するようになります。stackoverlfowOR^

于 2013-03-13T16:46:12.387 に答える