Heim >Backend-Entwicklung >PHP-Tutorial >Verwendung der Rewrite-Technologie von Apache
Verwenden Sie die Rewrite-Technologie von Apache
Bei der Durchführung von PHP-Projekten ist die Umleitung von /user/heiyeluren auf /user.php?uid=heiyeluren oder ähnliches erforderlich. Natürlich können Sie /article/200707291011.html auch auf /article.php?id=200507291011 oder ähnliches umleiten. Die Simulation scheint eine statische Seite zu sein, die die tatsächliche Adresse der URL verbergen und zur grundlegenden Sicherheit beitragen kann von Regenstiefeln. Es scheint also, dass das Umschreiben eine gute Lösung ist.
Um rewrite in Apache auszuführen, müssen Sie zuerst die mod_rewrite-Komponente installieren, bei der es sich um eine mod_rewrite.c-Datei handelt, und dann müssen Sie mod_rewrite in ./configure einfügen, um es zu installieren.
Wenn Sie das Umschreiben konfigurieren, können Sie es im Allgemeinen in httpd.conf konfigurieren oder es in der .htaccess-Datei im aktuellen Verzeichnis der Webseite definieren, um zu entscheiden, zu welcher Datei umgeleitet werden soll ist sehr flexibel und kann auch für Benutzer virtueller Hosts geeignet sein.
Sehen wir uns ein Beispiel einer .htaccess-Datei an:
1
2 RewriteEngine On
3 RewriteBase /
4 RewriteCond %{REQUEST_FILENAME} -f [OR]
5 RewriteCond %{REQUEST_FILENAME} -d
6 RewriteRule ^.*$ - [S=42]
7
8 #RewriteRule ^share/$ /share.php [QSA,L]
9 RewriteRule ^tag/([^/] )/?$ /user_tags.php?tag=$1 [QSA,L]
10 RewriteRule ^city /([^/] )/?$ /user_city.php?tag=$1 [QSA,L]
11 #RewriteRule ^([^/] )/day/([^/] )/?$ /user_share .php?id=$1&s=1&selTime=$2 [QSA,L]
12 #RewriteRule ^([^/] )/day/([^/] )/?$ /user_share.php?id= $1&s =1&selTime=$2 [QSA,L]
13
14 RewriteRule ^([^/] )/day/([^/] )/?$ /user_share.php?id=$1&s=1&selTime =$2 [QSA,L]
15 RewriteRule ^([^/] )/week/([^/] )/?$ /user_share.php?id=$1&s=2&selTime=$2 [QSA,L]
16 RewRiteRule ^([^/] )/month/([^/] )/?$ /user_share.php?id=$1&s=3&selTime=$2 [QSA,L]
17
18 RewriteRule ^( [^/] )/Tag/?$ /user_share.php?id=$1&s=1 [QSA,L]
19 RewriteRule ^([^/] )/Woche/?$ /user_share.php? id= $1&s=2 [QSA,L]
20 RewriteRule ^([^/] )/Monat/?$ /user_share.php?id=$1&s=3 [QSA,L]
21
22 RewriteRule ^([^/] )/?$ /user_share.php?id=$1 [QSA,L]
23
ist relativ lang. Konzentrieren wir uns einfach auf den Kerninhalt. Der Inhalt zwischen
Text:
. Entspricht jedem einzelnen Zeichen
[chars] Entspricht dem aktuellen Zeichen
[ ^chars] Entspricht nicht dem aktuellen Zeichen
text1|text2 enthält einen von text1 oder text2
Quantifizierer:
? vor dem ?-Zeichen Verwendung einer Alternative oder
zum Erstellen von Rückverweisen, wobei die N-te Gruppe
auf der rechten Seite einer RewriteRule mit $N verwendet werden kann)
Anker:
^ Passender Inhalts-Start-Tag
$ Passender Inhalts-End-Tag
Escape:
Die Grundregeln sind wie oben. Beispielsweise kann der folgende reguläre Ausdruck: ^/([^/] )/~([^/] )/(.*)$ mit /Language/~ übereinstimmen Realname/.../ Dateipfad.
RewriteRule-Zugriffspfad Der tatsächliche Pfad, auf den verwiesen werden muss
Das ist sehr klar. Ich möchte beispielsweise /user/heiyeluren nach /user umleiten .php?uid=heiyeluren Dann müssen meine Regeln so aussehen:
Nicht klar, bitte beachten Sie den beigefügten Link für ein tieferes Verständnis des spezifischen Inhalts. Bitte verzeihen Sie mir die schlechte Schreibweise.
Anhang:
Apache Rewrite-Technologie http://www.yujs.com/recommendation/004.htm
Apache-Modul mod_rewrite http://linux.dalouis.com/doc/apache2.0 /mod/mod_rewrite.html
URL-Rewrite-Leitfaden http://linux.dalouis.com/doc/apache2.0/misc/rewriteguide.html
Apache HTTP Server 2.0-Versionsdokumentation http://linux.dalouis . com/doc/apache2.0/