Mod_rewrite sprawdź, czy plik php istnieje
Próbuję napisać kilka reguł mod_rewrite. W tej chwili wszystko działa dobrze. W tej chwili moje ogólne adresy URL wyglądają tak:
http://website.com/about-us
http://website.com/privacy
W tej chwili te 2 linki są mod_rewritten docontent.php
, boabout-us
iprivacy
nie istnieją jako pliki .php, ale ich zawartość jest przechowywana w bazie danych, którą pobiera content.php.
Mam inny adres URL:
http://website.com/contact-us
Który istnieje jako plik .php, ponieważ zawiera dane niestandardowe. Jak mogę sprawdzić, czycontact-us.php
istnieje. Jeśli tak, przekierujwebsite.com/contact-us
dowebsite.com/contact-us.php
, w przeciwnym razie przekieruj dowebsite.com/content.php
Poniżej znajduje się mój plik mod_rewrite:
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]
Jeśli potrzebujesz dalszych informacji, daj mi znać! Doceniam odpowiedzi :)