Defnyddiwch mod_rewrite i Ailgyfeirio Eich Safle Gyfan

Htaccess, mod_rewrite, ac Apache

Mae tudalennau gwe yn symud. Dyna ffaith o ddatblygiad gwe. Ac os ydych chi'n smart, rydych chi'n defnyddio 301 o ailgyfeiriadau i atal cylchdroi cyswllt. Ond beth os ydych chi'n symud y wefan gyfan? Gallech fynd heibio ac ysgrifennu dwywaith yn ailgyfeirio ar gyfer pob ffeil ar y wefan. Ond gallai hynny gymryd amser maith. Yn ffodus, mae'n bosib defnyddio htaccess a mod_rewrite i ailgyfeirio gwefan gyfan gyda dim ond ychydig linellau o god.

Sut i Ddefnyddio mod_rewrite i Ailgyfeirio Eich Safle

  1. Yn wraidd eich hen weinydd Gwe, golygu neu greu ffeil .htaccess newydd gan ddefnyddio golygydd testun.
  2. Ychwanegwch y llinell: RewriteEngine ON
  3. Ychwanegwch: RewriteRule ^ (. *) $ Http://newdomain.com/$1 [R = 301, L]

Bydd y llinell hon yn cymryd pob ffeil y gofynnwyd amdani yn eich hen faes, a'i atodi (gyda'r un enw ffeil) i URL eich parth newydd. Er enghraifft, bydd http://www.olddomain.com/filename yn cael ei ailgyfeirio i http://www.newdomain.com/filename. Mae'r R = 301 yn dweud wrth y gweinydd bod y ailgyfeirio yn barhaol.

Mae'r ateb hwnnw'n berffaith os ydych chi wedi cymryd eich holl safle a'i symud, yn gyfan gwbl, i faes newydd. Ond nid yw hynny'n digwydd yn aml iawn. Sefyllfa fwy cyffredin yw bod gan eich parth newydd ffeiliau a chyfeirlyfrau newydd. Ond nid ydych am golli'r cwsmeriaid sy'n cofio'r hen faes a ffeiliau. Felly, dylech osod eich mod_rewrite i ailgyfeirio'r holl ffeiliau i gyd i'r maes newydd:

RewriteRule ^. * $ Http://newdomain.com/ [R = 301, L]

Fel gyda'r rheol flaenorol, mae'r R = 301 yn gwneud hyn yn ailgyfeirio 301. Ac mae'r L yn dweud wrth y gweinydd mai dyma'r rheol olaf.

Unwaith y byddwch wedi sefydlu'ch rheol ailysgrifennu yn y ffeil htaccess, bydd eich gwefan newydd yn cael yr holl dudalennau o'r hen URL.