書き換えAPIを使用して新しい書き換え規則を追加しようとしています。
add_rewrite_rule('product/([A-Z0-9]{10})', 'index.php/product/?asin=$1', 'bottom');
add_rewrite_rule('product/(([A-Za-z0-9_])*)', 'index.php/product/?product=$1', 'bottom');
add_rewrite_rule('compare/((([A-Z0-9]{10}),?)*)', 'index.php/compare/?asin=$1', 'bottom');
add_rewrite_rule('categories/(([A-Za-z0-9]|\-|\_)*)', 'index.php/categories/?subcategory=$1', 'bottom');
パーマリンクが更新された後、それは.htaccess
ファイルに次の行を追加します。
RewriteRule ^product/([A-Z0-9]{10}) /index.php/product/?asin=$1 [QSA,L]
RewriteRule ^product/(([A-Za-z0-9_])*) /index.php/product/?product=$1 [QSA,L]
RewriteRule ^compare/((([A-Z0-9]{10}),?)*) /index.php/compare/?asin=$1 [QSA,L]
RewriteRule ^categories/(([A-Za-z0-9]|\-|\_)*) /index.php/categories/?subcategory=$1 [QSA,L]
次の.htaccess
ファイルが作成されます。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^product/([A-Z0-9]{10}) /index.php/product/?asin=$1 [QSA,L]
RewriteRule ^product/(([A-Za-z0-9_])*) /index.php/product/?product=$1 [QSA,L]
RewriteRule ^compare/((([A-Z0-9]{10}),?)*) /index.php/compare/?asin=$1 [QSA,L]
RewriteRule ^categories/(([A-Za-z0-9]|\-|\_)*) /index.php/categories/?subcategory=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
しかし、私が次のURLにアクセスしようとしたとき:
http://example.com/product/ABCDE324AB
うまくいかないようです。私は常にページが見つかりませんページが表示されます。何か案は?
私が上記から理解しているのは、あなたが.htaccessファイルを持っていて、そしてまた同じファイルに書かれているが、なお404問題を得ている正しいコードであるということです。その理由を教えてください。サーバーが.htaccessファイルによる読み取りまたは許可の上書きを許可していません。それでは、どうすればこの許可を与えることができますか? AllowOverride用のApache httpd.confファイル検索を開くと、それが何度か存在することがわかります。同じファイルに以下のコメントを確認してください。
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
AllowOverride None
をAllowOverride All
に置き換えるだけです
Apache
を再起動してください。