0

Apache で mod_rewrite エンジンを使用するのは初めてですが、正規表現の基本的な理解はある程度しています。しかし、私は困惑しており、正しく機能しないリダイレクトに非常に無関心になっています。

私の .htaccess ファイルの関連コードは次のとおりです。

RewriteCond %{REQUEST_URI} ^/vacations/([^/]*)(.*)$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

リダイレクトすると、$2 には何もありません。$0 と $1 の両方に、一致した文字列全体が含まれます。たとえば、元の URL が /vacations/asia/rar の場合、www.example.com/asia ではなくhttp://www.example.com/vacations/asia/rarにリダイレクトされます。

どんな助けでも大歓迎です。

4

1 に答える 1

0

これは、 RewriteCond 後方参照(%1)RewriteRule backreferencesを使用する必要があるときに ($1)を使用しているためです。

RewriteCond %{REQUEST_URI} ^/vacations/([^/]*)(.*)$ [NC]
RewriteRule ^(.*)$ http://www.example.com/%1 [R=301,L]
于 2013-11-02T01:57:34.297 に答える