Heim  >  Artikel  >  Backend-Entwicklung  >  Verwendung der Rewrite-Technologie von Apache

Verwendung der Rewrite-Technologie von Apache

伊谢尔伦
伊谢尔伦Original
2016-11-21 16:20:25914Durchsuche

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 ist die Definition, ob die URL-Umschreibungsfunktion ausgeführt werden soll. Das Wichtigste ist die folgende RewriteRule rewrite. Hier wird ein regulärer Ausdruck angewendet, der mit den Perl-Regeln kompatibel ist:


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:

char Wird zum Escapezeichen von Sonderzeichen verwendet, einschließlich „.[]()“ und anderen Zeichen



Die Grundregeln sind wie oben. Beispielsweise kann der folgende reguläre Ausdruck: ^/([^/] )/~([^/] )/(.*)$ mit /Language/~ übereinstimmen Realname/.../ Dateipfad.

Dann ist es aus dieser Perspektive einfacher, den obigen Inhalt zu verstehen. Werfen wir einen kurzen Blick auf die Regeln der RewriteRule-Direktive:

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:

RewriteRule ^user/([^/] )$ ^/user.php?uid=$2 [QSA,L]

Durch Zeichnen Schlussfolgerungen aus einem Beispiel machen es einfach, die Regeln zu verstehen. Wenn Sie es schreiben, werden Sie in der Lage sein, den Inhalt des obigen Regelskripts zu verstehen.             


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/


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn