現在WordPressプロジェクトで作業していますが、.htaccess書き換えルールに少し慣れています。次のようにWordPress add_rewrite_ruleが文字列を返す404
私のWordPressの書き換えルールのコードは次のとおりです。
if (!function_exists('check_string_id_rule')){
function check_string_id_rule(){
add_rewrite_rule('id-check/([^/]+)','id-check/?id=$1','top');
}
add_action('init', 'check_string_id_rule');
免責事項:マニュアルに従って、私は$マッチを使用することになっています[1]の代わりに、$ 1。私はそれを試みましたが、単にidの値を "matches [1]"に設定します。 $ 1はある程度トリックを行うようです。
私はmywebsite.com/id-check/12に移動すると、すべてが正常に動作し、私のidが12
私のIDのは、文字を含む文字の数のうち、しかし構築されるの価値を持っていますazから、0〜9の数字と時折のハイフン「 - 」
mywebsite.com/id-check/12a-5に移動すると、空のページにリダイレクトされます。 WordPressが存在しないページに私をリダイレクトするように見えます。私を/ 12a-5ページにリダイレクトしようとしています。 に行くと、mywebsite.com/id-check/?id=12-a5は意図したとおりに動作します。
なぜ私のルールは強制されていないのですか?私は.htaccessファイルをチェックして、競合するルールはないようです。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteRule ^index\.php$ - [L]
RewriteRule ^id-check/([^/]+) /id-check/?id=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
これはワードプレスのいくつかの奇妙なものですか、ここで何か不足していますか?
は、私は私自身の問題を解決するために管理している