Intereting Posts

Переписать правила, не работающие в WordPress

Я пытаюсь добавить новые правила перезаписи с помощью 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'); 

После обновления permalink он добавляет следующие строки в файл .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 читать или переопределять разрешения. Итак, как вы можете дать это разрешение? Откройте файл Apache httpd.conf для разрешения AllowOverride, вы можете увидеть его несколько раз. проверьте ниже комментарий в том же файле:

 # 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 и он должен работать