Otu esi eme ntụgharị nke ime na mod_rewrite na Apache


N'isiokwu a na nke na-esote anyị ga-akọwa otu esi eji mod_rewrite, iji maapụ ụfọdụ arịrịọ HTTP na ibe ndị ọzọ na weebụsaịtị, ma ọ bụ na URL mpụga.

N'ikwu ya n'ụzọ ọzọ, modul Apache a a ma ama ga-enye gị ohere ibugharị URL gaa na nke ọzọ, nke anyị ga-egosipụta site na ihe atụ bara uru.

IHE: Ọmụmaatụ ndị dị n'okpuru chere na ị maara nke ọma na Perl Compatible Regular Expressions (PCRE). Ebe ọ bụ na isiokwu ahụ esighị na akụkọ a, rụtụ aka na ụdị Perl 5 24.0 maka nkọwa ndị ọzọ na PCRE.

Tupu ịga n'ihu, gbaa mbọ hụ na ebugoro modul idegharị. Ọ bụ ezie na nke a bụ omume ndabara na CentOS na nkesa yiri ya, na Debian na usoro ị ga-achọ iji aka buo ya dị ka ndị a:

# a2enmod rewrite

Ịhazi Apache ka ọ jiri mod_rewrite Module

Maka ịdị mfe, ka anyị jiri saịtị ndabara na igbe CentOS 7 (IP 192.168.0.100) kọwaa otu esi eji mod_rewrite (DocumentRoot: /var/www/html, faịlụ nhazi: /etc/httpd/conf/httpd.conf).

Ka Apache jiri modul a, tinye ahịrị a na faịlụ nhazi:

RewriteEngine on

Ọ dị mkpa iburu n'obi na ndị ọbịa mebere agaghị eketa nhazi a n'otu igbe.

Ya mere, ị ga-achọ ịgbakwunye RewriteEngine na maka onye ọ bụla mebere onye ọbịa ebe ịchọrọ iji iwu idegharị.

Ntugharị n'ime bụ ihe atụ kachasị mfe nke mod_rewrite. Ọ bụrụ na ịchọrọ ịtụgharị arịrịọ niile maka default.aspx na index.html, tinye ahịrị na-esonụ (nke a makwaara dị ka iwu idegharị) n'okpuru RewriteEngine na:

RewriteRule "^/default\.aspx$" "/index.html"

ma echefukwala ịmalitegharị Apache ka mgbanwe ndị ahụ wee dị irè.

Nke a nwere ike ịba uru ma ọ bụrụ na ejiri ASP mee saịtị gị na mbụ wee gbanwee ka ọ bụrụ HTML5 dị larịị. Ngwa nchọta ga-enwe ntụnye faịlụ .aspx mana faịlụ ahụ anaghị adị ọzọ.

N'okwu ahụ, ị ga-achọ ụzọ ị ga-esi megharịa arịrịọ ahụ ka ndị ọbịa gị ghara ịbanye na ibe njehie. Iji nwalee, ka anyị mepụta faịlụ HTML dị mfe aha ya bụ index.html n'ime /var/www/html nwere ọdịnaya ndị a:

<!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>

Ihe nrịbama nlekọta na dollar ga-eme ka okwu oge niile dabara na eriri ọ bụla na-amalite na /default wee mechie na .aspx, n'otu n'otu.

Ugbu a malite ihe nchọgharị gị wee tụọ ya na 192.168.0.100/default.aspx. Ọ bụrụ na ihe na-aga dị ka a tụrụ anya, Apache kwesịrị ijere index.html kama.
Agbanyeghị, onye ọrụ njedebe ka ga-ahụ default.aspx na ogwe adreesị na-eme ka mgbanwe ahụ pụta ìhè kpamkpam:

Ọ bụrụ na ịchọrọ URL dị n'ime ebe adresị ka ọ gosi na ihe nkesa ọ na-eje ozi n'ezie index.html kama ihu ibe akpọrọ default.aspx, tinye [R, L] ruo na njedebe nke iwu idegharị dị ka ndị a:

RewriteRule "^/default\.aspx$" "/index.html" [R,L]

Ebe a [R,L] bụ ọkọlọtọ nhọrọ abụọ nke na-egosi na ekwesịrị ịnye redirect HTTP zuru ezu na ihe nchọgharị (R) yana na enweghị iwu ọzọ a ga-ahazi:

Rịba ama ka ebe adreesị na-egosi ugbu a index.html, dị ka a tụrụ anya ya, kama ịbụ default.aspx dị ka ọ mere na mbụ.

N'isiokwu a, anyị kọwara otú e si eji mod_rewrite rụọ ọrụ redirection. Nọrọ na nche maka post na-esote ebe anyị ga-amụta ka esi atụgharị gaa na akụrụngwa nke ebufere na sava dị iche, yana otu esi edegharị ọkọlọtọ.

Dị ka mgbe niile, nweere onwe gị iji ụdị nkọwa n'okpuru ma ọ bụrụ na ị nwere ajụjụ ọ bụla ma ọ bụ nzaghachi gbasara akụkọ a. Anyị na-atụ anya ịnụ gị!