Ich versuche, ein paar mod_rewrite Regeln zu schreiben. Im Moment läuft alles gut. Im Moment schauen meine generische URLs wie folgt aus:Mod_rewrite überprüfen, ob PHP-Datei existiert
http://website.com/about-us
http://website.com/privacy
Im Moment sind diese zwei Links mod_rewritten zu content.php
, weil about-us
und privacy
nicht als .php-Dateien vorhanden sind, sondern vielmehr wird ihr Inhalt gespeichert in eine Datenbank, die content.php abruft.
Ich habe eine andere url:
http://website.com/contact-us
, die als Php-Datei nicht existiert, weil es benutzerdefinierte Daten enthält. Wie kann ich überprüfen, ob contact-us.php
existiert? Ist dies der Fall, umleiten website.com/contact-us
-website.com/contact-us.php
, andernfalls Umleitung zu website.com/content.php
Unten ist mein mod_rewrite-Datei, wie es steht:
RewriteEngine On
# I want the following condition and rule to look to see if the .php file exists,
# and if it does, redirect to the physical page, otherwise, redirect to content.php
RewriteCond %{DOCUMENT_ROOT}/([a-zA-Z0-9\-_]+).php -f
RewriteRule ^([a-zA-Z0-9\-_]+)\.php$ [L]
RewriteRule ^([a-zA-Z0-9\-_]+)$ /content.php [L]
RewriteRule ^(product1|product2|product3)/(designer1|designer2|designer3)$ /search.php?productType=$1&designer=$2 [L]
RewriteRule ^sale/(product1|product2|product3)$ /search.php?sale=1&productType=$1 [L]
Wenn Sie weitere Informationen benötigen, lassen Sie es mich wissen! schätze ich die Antworten :)
Danke für die Antwort leider sein mit einem 500 internen Serverfehler kommt :( –
Entfernen Sie das '/' 'zwischen% {DOCUMENT_ROOT}% {REQUEST_URI}' –
Schauen Sie sich auch das einfachere Muster an, das für Ihre anderen 'RewriteRules' passt –