Mod_rewrite prüft ob eine PHP Datei existiert
Ich versuche ein paar mod_rewrite-Regeln zu schreiben. Im Moment funktioniert alles einwandfrei. Im Moment sehen meine generischen URLs so aus:
http://website.com/about-us
http://website.com/privacy
Momentan sind diese 2 Links auf mod_rewrittencontent.php
, daabout-us
undprivacy
existieren nicht als .php-Dateien, sondern ihr Inhalt wird in einer Datenbank gespeichert, die content.php abruft.
Ich habe eine andere URL:
http://website.com/contact-us
Welche existiert als .php-Datei, weil es benutzerdefinierte Daten enthält. Wie kann ich überprüfen, obcontact-us.php
existiert. Wenn dies der Fall ist, leiten Sie umwebsite.com/contact-us
zuwebsite.com/contact-us.php
leiten Sie andernfalls zu umwebsite.com/content.php
Unten ist meine mod_rewrite-Datei, wie sie 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 bitte wissen! Ich schätze die Antworten :)