Ich versuche, die neuen Überschreibungsregeln mit der Überschreibungs-API hinzuzufügen:
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');
Nachdem der Permalink aktualisiert wurde, werden der .htaccess
-Datei die folgenden Zeilen hinzugefügt:
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]
daraus ergibt sich die folgende .htaccess
Datei:
# 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
Aber als ich versuchte, auf die folgende URL zuzugreifen:
http://example.com/product/ABCDE324AB
Es scheint nicht zu funktionieren. Ich erhalte immer eine Seite nicht gefundene Seite. Irgendwelche Ideen?
Ich verstehe aus den obigen Ausführungen, dass Sie eine .htaccess-Datei und auch korrekten Code haben, der in dieselbe Datei geschrieben ist, aber immer noch das 404-Problem hat. Lass mich dir sagen warum. Ihr Server erlaubt der .htaccess-Datei nicht, die Berechtigung zu lesen oder zu überschreiben. Wie können Sie diese Erlaubnis geben? Öffnen Sie Ihre Apache httpd.conf-Datei serch für AllowOverride, jetzt können Sie sehen, dass sie mehrmals vorhanden ist. Überprüfe, ob der folgende Kommentar in derselben Datei enthalten ist:
# 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
Ersetzen Sie einfach AllowOverride None
durch AllowOverride All
Starten Sie nun Apache
neu und es sollte funktionieren