0

古いスタイルのリンクを古い Web サイトから PHP の新しいスタイルのリンクにリダイレクトしようとしています。

私は使用しています:

RewriteEngine on
    RewriteBase /
    RewriteRule s\.cfm?id=5$ http://mysite.com/article5.php [B,L,R=301]
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

ただし、s.cfm だけを使用するとどうなりますか? すべて正常に動作し、article5.php にリダイレクトされます。しかし、id=5 の部分をリダイレクトしようとすると、ページが見つかりません。

s.cfm?idだけを試してみ ましたが、htaccess バグが発生します。では、疑問符の後に何かを付けると ?... 問題が発生します。理由はわかりません。

4

1 に答える 1

1

内のクエリ文字列と照合することはできませんRewriteRule。URI パスのみがルール自体を通じて送信されます。クエリ文字列と照合する必要がある場合は、%{QUERY_STRING}a 内で var を使用しRewriteCondます。

RewriteCond %{QUERY_STRING} ^id=5$
RewriteRule ^/?s\.cfm$ http://mysite.com/article5.php [L,R=301]

他のすべては問題ありません。

于 2012-10-30T20:30:32.053 に答える