Selles ja järgmises artiklis selgitame, kuidas kasutada mod_rewrite'i, teatud HTTP -päringute kaardistamiseks veebisaidi teistele lehtedele või välisele URL -ile.
Teisisõnu, see on tuntud Apache moodul võimaldab teil suunata URL -i teisele, mida illustreerime praktiliste näidete abil.
Soovitatav lugemine:5 näpunäidet Apache veebiserveri jõudluse suurendamiseks
MÄRGE: Alltoodud näited eeldavad, et olete vähemalt mõnevõrra tuttav Perliga ühilduvad regulaaravaldised (PCRE). Kuna see teema ei kuulu käesoleva artikli reguleerimisalast, vaadake artiklit Perl 5 versioon 24.0 dokumentidest, et saada rohkem teavet PCRE kohta.
Enne jätkamist veenduge, et ümberkirjutamismoodul on laaditud. Kuigi see on vaikimisi käitumine CentOS ja sarnased jaotused, aastal Debian ja tuletisinstrumendid peate selle käsitsi laadima järgmiselt.
# a2enmod ümberkirjutamine.
Lihtsuse huvides kasutame vaikimisi saiti a CentOS 7 kast (IP 192.168.0.100), et selgitada, kuidas seda kasutada
mod_rewrite (DocumentRoot: /var/www/html, konfiguratsioonifail: /etc/httpd/conf/httpd.conf).Selleks, et Apache saaks seda moodulit kasutada, lisage konfiguratsioonifaili järgmine rida:
RewriteEngine on sisse lülitatud.
Oluline on märkida, et seda konfiguratsiooni ei pärita virtuaalsed hostid samasse kasti.
Seega peate lisama RewriteEngine sisse lülitatud iga virtuaalse hosti jaoks, kus soovite ümberkirjutamisreegleid kasutada.
Sisemine ümbersuunamine on lihtsaim näide mod_rewrite. Kui soovite kõik taotlused ümber suunata default.aspx et index.html, lisage järgmine rida (tuntud ka kui ümberkirjutamisreegel) RewriteEngine peal:
RewriteRule "^/default \ .aspx $" "/index.html"
ja ärge unustage muudatuste jõustumiseks Apache taaskäivitada.
See võib olla kasulik, kui teie sait on algselt loodud ASP ja hiljem muudeti tavaliseks HTML5. Otsingumootoritel on .aspx
fail on indekseeritud, kuid seda faili pole enam olemas.
Sellisel juhul peate leidma viisi taotluse ümbersuunamiseks, et teie potentsiaalsed külastajad vealehele ei satuks. Testimiseks loome lihtsa HTML -faili nimega index.html
sees /var/www/html järgmise sisuga:
Uus sait Default.aspx oli siin, kuid nüüd on see indeks.html
caret ja dollarit märgid panevad regulaaravaldise vastama mis tahes stringile, mis algab tähega /default
ja lõpetades .aspx
vastavalt.
Soovitatav lugemine:Installige Mod_Pagespeed, et kiirendada Apache jõudlust kuni 10 korda
Nüüd käivitage oma brauser ja osutage sellele 192.168.0.100/default.aspx. Kui asjad lähevad ootuspäraselt, peaks Apache teenima index.html
selle asemel.
Lõppkasutaja näeb siiski default.aspx
aadressiribal, mis muudab muudatuse täiesti läbipaistvaks:
Kui soovite, et aadressiribal olev URL näitaks, et server seda tegelikult teenindab index.html
nimega lehe asemel default.aspx
, lisama [R, L]
ümberkirjutamise reegli lõpuni järgmiselt:
RewriteRule "^/default \ .aspx $" "/index.html" [R, L]
Siin [R, L]
on kaks valikulist lippu, mis näitavad, et brauserile tuleks väljastada täielik HTTP ümbersuunamine (R)
ja et täiendavaid reegleid ei tohiks töödelda:
Pange tähele, kuidas aadressiriba nüüd kuvatakse index.html
, nagu oodatud, selle asemel default.aspx
nagu varemgi.
Selles artiklis selgitasime, kuidas kasutada mod_rewrite'i sisemise ümbersuunamise teostamiseks. Jääge ootama järgmist postitust, kus õpime, kuidas suunata ressurssi, mis on teisaldatud teise serverisse, ja kuidas kuvada kohandatud sisu vastavalt kasutaja brauserile. Kuni selle ajani leiate täieliku loetelu saadaolevatest Apache 2.4 dokumentidest lippe ümber kirjutada.
Nagu alati, kasutage julgelt allolevat kommentaarivormi, kui teil on selle artikli kohta küsimusi või tagasisidet. Ootame teie arvamust!