Die erste Methode: Wenn Sie die URL-Adresse in der Apache-Umgebung neu schreiben möchten, sind reguläre Ausdrücke die grundlegendste Anforderung, aber für allgemeine URL-Adressen kann der grundlegende Abgleich die meisten unserer Anforderungen erfüllen, es sei denn, es handelt sich um etwas ganz Besonderes URL-Adresse, aber das ist nicht der Bereich, den ich besprechen möchte. Erfahren Sie, wie Sie URL-Adressen in wenigen einfachen Schritten umschreiben:
002
003 URL-Beispiel
004
005 URL neu schreiben: http://www.baidu.com/?p=152
006
007 Original-URL: http://www.baidu.com/p152.html
008
009 Regeln umschreiben:
010
011 ^p ([0-9]+).html /?p=$1 [L]
012
013 Grundkenntnisse regulärer Ausdrücke:
014
015 ^ Der Anfang der passenden Zeile stimmt mit dem Anfang der URL-Adresse überein. Bei RewriteRule ist der Domänenname (http://www.xxxx.com) nicht Teil der URL-Adresse, wie oben:?p= 152
016
017 () Trennt einen erfassten Ausdruck, wie oben: ([0-9]+)
018
019 [] Definiert eine Zeichenklasse wie oben: [0 -9] stellt eine Zahl von 0-9 dar
020
021 + gibt an, dass das vorherige Zeichen einmal oder mehrmals wiederholt und abgeglichen werden kann oben: [0-9]+, Angabe einer beliebigen Zahlenkombination
022
023 Zeichen-Escape, wie oben: Escape
024
025 Andere :
026
027 [L] bedeutet zuletzt, den Abgleich mit anderen beenden
028
029 Die Methode ist wie folgt:
030
031 1. Öffnen Sie die httpd.conf-Datei und suchen Sie nach
032
033 #LoadModule rewrite_modulemodules/mod_rewrite.so Kommentar vor #
034
035 2. httpd-vhosts-Datei öffnen, Rewrite-Regeln in VirtualHost hinzufügen,
036
037 RewriteEngine Ein
038
039 RewriteRule ^p([0-9]+ ).html /?p=$1 [L]
040
041 Im Grunde sind dies die beiden oben genannten Schritte. Im Allgemeinen ist das Umschreiben von URL-Adressen in Apache relativ einfach. Es ist viel schneller zu erlernen als das Lesen von Dokumenten. Wenn Sie es jedoch genauer verstehen möchten, müssen Sie die entsprechenden Dokumente lesen. Denken Sie daran: Bei jeder Übereinstimmung handelt es sich tatsächlich um einen Prozess zum Ersetzen regulärer Ausdrücke.
042
043 Das Erstellen suchmaschinenfreundlicher URL-Adressen ist für PHP-Programmierer sehr wichtig. Daher ist das Erlernen des Umschreibens von URL-Adressen in Apache eine der grundlegendsten Anforderungen.
044
045
046 Zweite Methode:
047
048 1. Überprüfen Sie zunächst, ob das Rewrite-Modul installiert ist:
049
050 cat httpd.conf |. Pseudostatische HTML-Verbindung generieren:
054
055 (1) Pseudostatisches HTML generieren
056
057 Am Ende des < hinzufügen ;VirtualHost> Abschnitt
058
059 RewriteEngine auf
060 RewriteRule /goods([0-9]+).html /goods.php?id=$1 [PT ]
061 Eine standardmäßigere Schreibweise ist:
062 RewriteRule ^(.*)/goods([0-9]+).html$ $1/goods.php?id= $2 [PT]
063 Prägnanteres Schreiben:
064 /goods(d+).html /goods.php?id=$1
065
066 Das erste ( 0-9]+) entspricht dem Parameter $1 und so weiter, das zweite entspricht $2
067
068 Beispiel:
069
070 RewriteRule / forum-([0-9]+)-([0-9]+).html /forumdisplay.php?fid=$1&page=$2 [PT]
071
072 Test Ist http://www.xxx.com/goods1.html derselbe Inhalt wie /goods.php?id=1?
073
074 Zum Schluss ersetzen Alle Links mit der eingestellten Pseudo-Adressmethode Statische HTML-Adresse
075
076
077 [PT]: Globale URL-Konvertierung, d. h. die konvertierte Datei „goods31.html“ entspricht „goods.php?id=31“ (Standardeinstellung ist dies ohne Parameter)
078 [R]: URL-Umleitung ist Wenn Sie über „goods31.html“ darauf zugreifen, springen Sie zu „goods.php?id=31“
079
080
081 3. Anti-Hotlink:
082
083 RewriteCrond %{HTTP_HOST} !xxxx.com [R=301,L]
084 RewriteRule ^(.*)$ http://www.xxxx.com/warning. html [ R=301,L]
085
086 Anfragen nicht von xxxx.com an http://www.xxxx.com umleiten
087
088 Besserer Ansatz:
089 RewriteCond %{HTTP_REFERER} !^http://(www.)?xxxx.com/.*$ [NC]
090 RewriteRule .(mp3 |rar|jpe|gif)$ http://www.xxxx.com/warning.jpg [R=301,L]
091
092 4. Anti-Baidu-Crawler:
093 RewriteCond %{HTTP_USER_AGENT} ^Baiduspider [OR]
094 RewriteRule ^(.*)$ http://www.google.com [R=301,L]
095 Übertragen Sie den Crawler von Baidu zu Google
096
097 PS: Pseudostatische PHP-Methode
101
102 Methode 1:
103
104 Zum Beispiel diese Webseite
105
106 http://www.xxxx.com/soft.php/1,100,8630. html
107
108 Tatsächlich ist das verarbeitete Skript soft.php und der Parameter ist 1.100.8630
109
110 Entspricht soft. php?a=1&b=1=100&c=8630, aber diese URL ist zu schwer zu merken. Suchmaschinen mögen es auch nicht.
111
112 Echtes Static ist einfach vollständig generiertes HTML.
113
114 Direkte Ausgabe, wenn der Client zugreift. Es ist keine Skripterklärung erforderlich. Es wird sehr gute Ergebnisse liefern, wenn der Datenverkehr sehr groß ist (z. B. wenn es täglich Millionen von Besuchen gibt). Mit anderen Worten: Diese HTML-Seite existiert tatsächlich auf der Serverseite.
115
116 Natürlich, wenn der Traffic Ihrer Website nicht so groß ist. Das Umschreiben von URLs ist die beste Methode (meiner persönlichen Meinung nach kann ein Lastausgleich bei starkem Datenverkehr in Betracht gezogen werden. Das spielt auch keine Rolle)
117
118 Es gibt viele Möglichkeiten zum Umschreiben URLs. APACHE,IISREWRITE. Sogar PHP-Skripte können damit direkt umgehen. Im obigen Beispiel erfolgt die Verarbeitung beispielsweise direkt per PHP-Skript (der Vorteil dieser Methode besteht darin, dass sie bei großem Datenverkehr direkt den Druck auf den WEB-Server verringert. PS: Dies ist auch eine persönliche Meinung:
119
120 === ================================ ===========
121
122 Nehmen wir das Programm als Beispiel, um über die pseudostatische Programmimplementierungsmethode von PHP zu sprechen habe diese Methode bereits in anderen Foren-Communities gepostet
123
124 Nehmen Sie das Programm als Beispiel:
125
126 http://www .xxxx.com/soft.php/1,100,8630.html
127
128 CODE:
129
130 //Verwenden Sie die Servervariable um die PATH_INFO-Informationen zu erhalten, ist es /1,100,8630.html, der Teil nach dem Ausführungsskriptnamen
131
132 if(@$path_info =$ _SERVER). ["PATH_INFO"]){
133 //Reguläre Übereinstimmungsparameter
134 if(preg_match("// (d+),(d+),(d+).html/si", $path_info,$arr_path)){
135 $gid =intval($arr_path[1]); //Wert 1 abrufen
136 $sid =intval($arr_path[2]) ; //Erhalte den Wert 100
137 $softid =intval($arr_path[3]); //Erhalte den Wert 8630
138 }else die("Path:Error!") ;
139 //Entspricht soft.php?gid=1&sid=100&softid=8630
140 //So einfach ist das ~)
141 Methode 2:
142 Öffnen Sie die Apache-Konfigurationsdatei httpd.conf.
143 Zwei Generäle #Loadmodule Rewrite_modules/MOD_REWRITE Die #🎜>144 drei hinzufügen:
145 & lt; ifmodule & gt; Am
147 #RewriteCond %{ENV:SCRIPT_URL} (?:index|dispbbs)[-0-9]+.html
148 RewriteRule ^(.*?(?:index|dispbbs))- ([-0-9]+).html 1.php?__is_apache_rewrite=1&__rewrite_arg=2
149
150 Viertens müssen wir die Zuordnung der ASP-Post-URL realisieren Zum PHP-Beitrag fügen Sie im dritten Schritt zwischen
151 RewriteMap tolowercase int:tolower
152 RewriteCond %{QUERY_STRING} (? : boardid|page|id|replyid|star|skin)=d+ [NC]
153 RewriteRule ^(.*(?:index|dispbbs)).asp 1.php?{tolowercase:%{QUERY_STRING } }&__is_apache_rewrite=1
154 httpd.conf speichern und Apache neu starten
155 Methode 3:
156
157 function mod_rewrite( ){
158 global
159 $ _GET;
160 $nav=$ _SERVER["REQUEST_URI"];
161 $script_name=$ _SERVER ["SCRIPT_NAME"];
162 $nav=substr(ereg_replace("^$script_name","",urldecode($nav)),1
163 $nav=preg_replace ("/^.ht(m){1}(l){0,1}$/","",$nav);//Dieser Satz ist .html oder .htm mit entferntem Ende
164 $vars = explosion("/",$nav);
165 for($i=0;$i 166 $ _GET["$vars[$i]"]=$vars[$i+1]; 167 } 168 return $ _GET; 170 mod_rewrite(); 171 $yearn=$ _GET["year"];//Das Ergebnis ist '2006' 172 $action=$ _GET[ "action"]; // Das Ergebnis ist '_add' 173 echo $ action; 175?php 177 function mod_rewrite(){ 178 global $ _GET; 179 $nav= $ _SERVER["REQUEST_URI"]; 180 $script_name= $ _SERVER["SCRIPT_NAME"]; 181 $nav=substr(ereg_replace("^$script_name","",urldecode($nav)),1); =preg_replace("/^.ht(m){1}(l){0,1}$/","",$nav);//Dieser Satz ist .html oder .htm mit entferntem Ende 183 $vars = explosion("/",$nav); 184 for($i=0;$i 185 $ _GET["$vars[$i]"]=$vars[$i+1]; 186 } 187 return 188 $ _get ; 189} 190 mod_rewrite (); 191 $ Yearn = $ _get ["year"]; // Das Ergebnis ist '2006' 192 $action=$ _GET["action"];//Das Ergebnis ist '_add' 193 echo $yearn;194 echo $action; >195 In vielen Fällen kann der Zugriff auf eine bestimmte IP leicht dazu führen, dass die CPU zu 100 % ausgelastet ist (z. B. festes Crawling durch einige Suchmaschinen, eine große Anzahl von Sammelstellen durch andere). Zu diesem Zeitpunkt müssen wir einige effektive verwenden bedeutet, die IP des anderen Teilnehmers zu blockieren, damit er die Ressourcen des Servers nicht verbrauchen kann. Wenn auf Ihrem Webserver das Rewrite-Modul installiert ist, können Sie auch versuchen, die IP des anderen Teilnehmers zu blockieren . 196 1. Beispielsweise leiten wir eine bestimmte IP direkt zur Baidu-Homepage um und fügen Code in der .htaccess-Datei im Stammverzeichnis der Website hinzu: 197 RewriteCond % 123.123.123.123 [ NC ]RewriteRule ^(.*)$ http://www.baidu.com/$1 [R=301] Ersetzen Sie die IP 123.123.123.123 durch die IP, die Sie einschränken möchten 198 2. Wenn Sie möchten Um mehrere IPs zu implementieren, können Sie wie folgt schreiben: 199 RewriteCond % 123.123.123.123 [OR]RewriteCond % 124.124.124.124 [NC]RewriteRule ^(.*)$ http://www.baidu.com /$1 [R=301] Das Obige ist der Inhalt der URL-Adressumschreibung von Apache. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!