ここに私の.htaccess
ファイルの内容があります。なぜこのパターンはpreg_matchで一致する間、RewriteCondのQUERY_STRINGと一致しませんか?
RewriteEngine on
RewriteCond %{QUERY_STRING} ^(run=[a-z0-9A-z]{13})$
RewriteRule %{QUERY_STRING} \? [L]
私がやっているすべてはrun=4f13665700694
に似たすべてのQUERY_STRING
ためQUERY_STRING
を書き換えると何もしませんさ。 URLの例:http://thinkingmonkey.me/runs/?run=4f13665700694
したがって、RewriteCondは一致する必要があります。しかし、上記は機能しません。
しかし、パターンは正しいようでした。以来、両方preg_match
& RewriteRule
を使用PCRE - Perl Compatible Regular Expressions
。
preg_match
を使って試しました。
$subject = "run=4f13665700694";
$pattern = "/^(run=[a-z0-9A-z]{13})$/";
echo preg_match($pattern, $subject);
、上記のように意志出力除外:すなわち成功したマッチ
1
を。
なぜか分かりません。私はここで何が欠けていますか?
この場合「http://thinkingmonkey.me/runs/?」に書き換えることは「何もしない」という意味ですか? – TerryE
@TerryEはい。しかし、私はここで問題を解決しました。 '%{QUERY_STRING} 'は' RewriteRule'で照合&置換するパターンとして使用できません。 – ThinkingMonkey