URL書き換えのトピックに関する多くの記事を読んだ後も、404
ステータスエラーが発生したままです。
私の目標:
A 'static'次のようにURLを書き換えます(ユーザーが1つのURL /スクリプトをクリックするか入力しますが、内部的に他のURL /スクリプトが実行されます-パラメーターも「静的」なので、私はできないと思いますルールで(*.)
および$1
のあらゆる種類のパターンを使用します...:
domain.tld/en/abc.php?foo
からdomain.tld/en/xyz.php?bar
(第1レベル)domain.tld/en/abc.php?foo&blabla
からdomain.tld/en/xyz.php?bar&otherstring
(第2レベル)追加情報:
私の.htaccess:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^en/abc\.php\?foo&blabla$ /en/xyz.php?bar&otherstring [NC,L]
RewriteRule ^en/abc\.php\?foo$ /en/xyz.php?bar [NC,L]
この単純な最後のルールでは、すでに404
エラーが発生しています。 rewritelogにアクセスできません。
RewriteRule
パターンを使用してクエリ文字列を確認することはできません(クエリ文字列は、ホスト名などのように、パターンマッチングの前に削除されます)。したがって、上記で説明したルールは単に一致せず、404を取得します。ただし、RewriteCond
ディレクティブを使用してクエリ文字列を確認できます。
例えば:
domain.tld/en/abc.php?foo
からdomain.tld/en/xyz.php?bar
RewriteCond %{QUERY_STRING} =foo
RewriteRule ^en/abc\.php$ /en/xyz.php?bar [L]
これは、クエリ文字列「foo」と完全に一致することに注意してください。大文字と小文字を区別しない一致が特に必要でない限り、NC
フラグを削除しましたか?