Was bedeuten diese Erklärungen in meiner .htaccess-Datei?
-
03-07-2019 - |
Frage
Ich bin ein newb zu PHP. Kann mir jemand sagen, was jede Zeile hier tut. Muss ich diese benötigen? Es gibt mir Fehler
RewriteCond %{REQUEST_URI} /~([^/]+)/?
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) /~%1/rewrite.php?p=$1&%{QUERY_STRING} [L]
RewriteCond %{REQUEST_URI} /~([^/]+)/?
RewriteRule ^index\.php?(.*)$ /~%1/rewrite.php?p=%1&%{QUERY_STRING} [L]
#there is no ~ character in the URL
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) ./rewrite.php?p=$1&%{QUERY_STRING} [L]
RewriteRule ^index\.php?(.*)$ ./rewrite.php?p=$1&%{QUERY_STRING} [L]
#WJ-180 fix
RewriteRule ^resume\.php?(.*)$ ./rewrite.php?p=resume\.php$1&%{QUERY_STRING} [L]
Lösung
Die einfache Antwort: Diese Erklärungen umschreiben jede Anforderung an eine rewrite.php
Datei
Die umfassendere Antwort: Die RewriteCond
und RewriteRule
Richtlinien sind von dem Apache-Modul mod_rewrite und bietet einen regelbasierte URL-Rewrite-Mechanismus.
Es scheint, dass diese Vorschriften, die jede Anforderung an eine rewrite.php
Datei neu zu schreiben, entweder in einem bestimmten Verzeichnis (/~
foobar /rewrite.php
) oder in der Wurzel (/rewrite.php
).
Andere Tipps
Wenn Sie neu sind, finden Sie unter http: //httpd.apache. org / docs / 1.3 / mod / mod_rewrite.html , ist es sehr schön erklärt.
P. S. Ihr Titel: "Was diese Erklärungen in meiner PHP .htaccess-Datei bedeuten tun?" ist falsch, .htacces nicht PHP-Datei ist.
Diese sagen
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
„Nur die folgende Regel verwenden, wenn die Anforderung nicht eine vorhandene Datei oder das Verzeichnis übereinstimmt.“
Das sind mod_rewrite Konfigurationseinträge.
Es ist eine Apache mod_rewrite Regel. Es sei denn, Sie irgendeine Art von Rahmen verwenden wahrscheinlich Sie brauchen es nicht. Siehe Apache mod_rewrite für weitere Informationen.