Kif Twettaq Ridirezzjoni Interna b'mod_rewrite f'Apache
F'dan l-artikolu u f'dak li jmiss se nispjegaw kif tuża mod_rewrite, biex timmappa ċerti talbiet HTTP għal paġni oħra f'websajt, jew għal URL estern.
Fi kliem ieħor, dan il-modulu Apache magħruf se jippermettilek li terġa 'tidderieġi URL għal ieħor, li aħna se nuru permezz ta' eżempji prattiċi.
NOTA: L-eżempji hawn taħt jassumu li inti tal-inqas kemmxejn familjari mal-Espressjonijiet Regolari Kompatibbli Perl (PCRE). Peress li dak is-suġġett huwa barra mill-ambitu ta 'dan l-artikolu, irreferi għad-dokumenti Perl 5 verżjoni 24.0 għal aktar dettalji dwar PCRE.
Qabel ma tipproċedi, kun żgur li l-modulu tal-kitba mill-ġdid ikun mgħobbi. Għalkemm din hija l-imġieba awtomatika f'CentOS u distribuzzjonijiet simili, f'Debian u fid-derivattivi ser ikollok bżonn tgħabbiha manwalment kif ġej:
# a2enmod rewrite
Konfigurazzjoni ta' Apache biex Uża l-Modulu mod_rewrite
Għas-sempliċità, ejja nużaw is-sit default f'kaxxa CentOS 7 (IP 192.168.0.100) biex tispjega kif tuża mod_rewrite (DocumentRoot: /var/www/html, fajl ta 'konfigurazzjoni: /etc/httpd/conf/httpd.conf).
Sabiex Apache juża dan il-modulu, żid il-linja li ġejja mal-fajl tal-konfigurazzjoni:
RewriteEngine on
Huwa importanti li wieħed jinnota li din il-konfigurazzjoni mhux se tintiret minn hosts virtwali fl-istess kaxxa.
Għalhekk, ser ikollok bżonn iżżid RewriteEngine fuq għal kull ospitanti virtwali fejn trid tuża regoli tal-kitba mill-ġdid.
Direzzjoni mill-ġdid interna hija l-aktar eżempju sempliċi ta 'mod_rewrite. Jekk trid tidderieġi mill-ġdid it-talbiet kollha għal default.aspx għal index.html, żid il-linja li ġejja (magħrufa wkoll bħala regola tal-kitba mill-ġdid) taħt RewriteEngine fuq:
RewriteRule "^/default\.aspx$" "/index.html"
u tinsiex terġa 'tibda Apache sabiex il-bidliet jidħlu fis-seħħ.
Dan jista 'jkun utli jekk is-sit tiegħek kien oriġinarjament iddisinjat bl-użu ta' ASP u aktar tard inbidel għal HTML5 sempliċi. Il-magni tat-tiftix se jkollhom il-fajl .aspx
indiċjat iżda dak il-fajl ma jeżistix aktar.
F'dak il-każ, ikollok bżonn issib mod kif terġa 'tidderieġi t-talba sabiex il-viżitaturi prospettivi tiegħek ma jsibux paġna ta' żball. Biex tittestja, ejja noħolqu fajl HTML sempliċi bl-isem index.html
ġewwa /var/www/html bil-kontenut li ġej:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>New site</title> </head> <body> <h2>Default.aspx was here, but now it's index.html</h2> </body> </html>
Is-sinjali caret u dollaru se jikkawżaw li l-espressjoni regolari taqbel ma 'kwalunkwe sekwenza li tibda b'/default
u tispiċċa b'.aspx
, rispettivament.
Issa tniedi l-brawżer tiegħek u ppuntah lejn 192.168.0.100/default.aspx. Jekk l-affarijiet imorru kif mistenni, Apache għandu jservi index.html
minflok.
Madankollu, l-utent aħħari xorta se jara default.aspx
fil-bar tal-indirizzi li jikkawża li l-bidla tkun totalment trasparenti:
Jekk trid li l-URL fil-bar tal-indirizz juri li s-server fil-fatt qed iservi index.html
minflok paġna bl-isem default.aspx
, żid [R, L]
sal-aħħar tar-regola tal-kitba mill-ġdid kif ġej:
RewriteRule "^/default\.aspx$" "/index.html" [R,L]
Hawnhekk [R,L]
hemm żewġ bnadar fakultattivi li jindikaw li redirect HTTP komplut għandu jinħareġ lill-browser (R)
u li m'għandhom jiġu pproċessati l-ebda regoli oħra:
Innota kif il-bar tal-indirizz issa turi index.html
, kif mistenni, minflok default.aspx
kif għamlet qabel.
F'dan l-artikolu spjegajna kif tuża mod_rewrite biex twettaq direzzjoni mill-ġdid interna. Żomm sintonizzat għall-post li jmiss fejn se nitgħallmu kif nidderieġu mill-ġdid għal riżors li ġie mċaqlaq għal server differenti, u kif niktbu mill-ġdid il-bnadar.
Bħal dejjem, tħossok liberu li tuża l-formola tal-kummenti hawn taħt jekk għandek xi mistoqsijiet jew feedback dwar dan l-artikolu. Aħna ħerqana li nisimgħu mingħandek!