Mein Ziel ist es, .php Erweiterungen von URL zu entfernen und semantische URL mehrsprachige Website zu erstellen. Hier ist meine .htaccess Regeln:.htaccess mod_rewrite verursacht 500 statt 404 (unendliche interne Weiterleitungen)
# Turn mod_rewrite on
RewriteEngine On
#Remove .php extensions from files
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f
RewriteRule ^(.+?)/?$ /$1.php [L]
#Create Semantic url
RewriteRule ^event/([A-Za-z0-9-\+]+)/([A-Za-z0-9-\+]+)/?$ calendar?region=$1&news_id=$2 [L,NC]
#Handle language switch.
RewriteRule ^(ru)/(.*)$ $2?sitelang=2 [L,QSA]
RewriteRule ^(ru)$ $1?sitelang=2 [L,QSA]
RewriteRule ^(en)/(.*)$ $2?sitelang=1 [L,QSA]
RewriteRule ^(en)$ $1?sitelang=1 [L,QSA]
RewriteRule ^(.*)$ $1?sitelang=1 [L,QSA]
#404 Document /404.php
ErrorDocument 404 /404
So habe ich einige Fälle, wenn diese Regeln funktionieren, aber auch wenn nicht funktioniert. Also hier sind die Arbeitenden:
- domain.com/ ru/event/Region/some-event-name
- domain.com/event/region/some-event-name
Und diejenigen wich nicht funktioniert (wenn ich etwas, fett hinzufügen), verursacht Fehler 500:
- domain.com/event s/Region/some-event-name
- domain.com/event s/Region/some-event-name/
- domain.com/event/region/some-event-name/ etwas