2017-09-22 13 views
0

現在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> 

これはワードプレスのいくつかの奇妙なものですか、ここで何か不足していますか?

は、私は私自身の問題を解決するために管理している

答えて

0

Stijnファンデルポール、事前にありがとうございます。私の問題は、私のadd_rewrite_ruleロジックの2番目のパラメータにあるようです。

私は部分的に、次の記事に続く:私はハイパーリンクが眉をひそめている知っているが、クレジットrlmseo.comにhttp://www.rlmseo.com/blog/passing-get-query-string-parameters-in-wordpress-url/

を。要するに、彼らは書き換えルールを登録する別のアプローチを提案しました。それは次のコードにつながる私自身の変化のカップル..私のfunctions.php内

付:

if(!function_exists('add_rewrite_rules')){ 
    function add_rewrite_rules($aRules) { 
     $aNewRules = ['id-check/([^/]+)' => 'index.php?pagename=id-check&id=$matches[1]']; 
     $aRules = $aNewRules + $aRules; 
     return $aRules; 
    } 
} 
add_filter('rewrite_rules_array', 'add_rewrite_rules'); 

そして私にも私のfunctions.phpに以下のタグ書き換えロジックを使用します。

function id_rewrite_tag() { 
    add_rewrite_tag('%id%', '([^/]+)'); 
} 
add_action('init', 'id_rewrite_tag'); 

は、次に私の見解で私が使用して変数にアクセス:

global $wp_query; 
$id = $wp_query->query_vars['id']; 

私はこれが役立つことを望みます誰かに:-)

関連する問題