Байршлын php жишээнүүд. Хуудсыг ачаалахаас өмнө PHP дээр өөр URL руу хэрхэн чиглүүлэх вэ? Ямар төрлийн дахин чиглүүлэлт вэ

45.4К

Хэн ч илгээж болно. Гэхдээ зөв чиглүүлэх нь бүхэл бүтэн урлаг юм. Гэхдээ интернет дэх хэрэглэгчдийг зөв зам руу чиглүүлэх нь бүр ч хэцүү байдаг. Үүнд php руу чиглүүлэх нь хамгийн тохиромжтой.

Ямар төрлийн дахин чиглүүлэлт вэ?

Вэб програмчлалын хувьд холбоосыг дагаж хэрэглэгчийг өөр хаяг руу чиглүүлэх шаардлагатай нөхцөл байдал үүсдэг. Мэдээжийн хэрэг, ийм чиглүүлэлтийг хэрэгжүүлэх нь эхлээд харахад "хууль бус" мэт санагдаж байна. Практикт ийм чиглүүлэлт нь зөвхөн халдагчдад төдийгүй шударга вэбмастеруудын дунд эрэлт хэрэгцээтэй байдаг.


Ямар тохиолдолд дахин чиглүүлэлт шаардлагатай байж болно:
  • Сайтын хөдөлгүүрийг солих үед бүх нөөцийн архитектур нь үр дүнд нь өөрчлөгддөг. Дараа нь дахин чиглүүлэлт хийх асуудал гарч ирдэг;
  • Нөөцийн бүтцийг дахин зурахад бүхэл бүтэн хэсэг эсвэл нэг материалыг нэмж, устгаж, шилжүүлдэг. Энэ процесс явагдаж байх үед түр зуур хэрэглэгчийг хүссэн хэсэг рүү дахин чиглүүлэх боломжтой;
  • Хэрэв сайт саяхан домэйн нэрээ өөрчилсөн бол домэйн нэрийг өөрчилсний дараа хуучин нь хайлтын үр дүнд хэсэг хугацаанд харагдах болно. Энэ тохиолдолд хэрэглэгч хайлтын системээр автоматаар шинэ домайн руу дахин чиглэгдэх болно;
  • Зөвшөөрөл олгох явцад, дүрмээр бол том вэбсайт дээр энгийн зочин, нөөцийн администратор гэсэн хоёр бүлэг хэрэглэгчид байдаг. Энэ тохиолдолд хэрэглэгч бүрийн эрх, үүргийн дагуу дахин чиглүүлэлт хийх нь зүйтэй юм. Зөвшөөрөл авсны дараа сайтын администратор эсвэл зохицуулагчид нөөцийн захиргааны хэсэг рүү, зочдод нөөцийн хэрэглэгчийн хэсэг рүү очдог.
Php руу дахин чиглүүлэх онцлог

Бусад хэлүүдээс ялгаатай нь PHP нь дахин чиглүүлэлт хийхэд зарим давуу талуудтай:

  • Php бол сервер талын програмчлалын хэл юм. Тиймээс дахин чиглүүлэлт нь хөтөч дээр гарч буй хуудсуудын html код дээр биш, харин сервер дээр байрлах скрипт дээр явагдах болно;
  • Php руу дахин чиглүүлэх нь хэд хэдэн аргаар хэрэгжиж болно. Энэ нь түүний хэрэглээг ихээхэн өргөжүүлдэг;
  • Сервер дээрх өгөгдлийг боловсруулдаг тул PHP ашиглан хэрэгжүүлсэн дахин чиглүүлэлт нь хайлтын системийн шүүлтүүрийн нөлөөнд бага өртдөг.

PHP дээр дахин чиглүүлэхийн тулд header() функцийг ашиглана. Энэ нь http толгойг илгээхэд хэрэглэгддэг. Түүний синтакс нь:

хүчингүй толгой (мөр $string [, bool $replace = үнэн [, int $http_response_code ]])

Функцийн хүлээн зөвшөөрсөн аргументууд:


  • string $string – толгойн мөр;

Энэ аргументын хоёр төрөл байдаг. Эхнийх нь холболтын төлөвийн кодыг илгээх явдал юм. Энэ нь "HTTP/" гэж эхэлдэг. Нөгөө төрөл нь статусын кодыг (REDIRECT 302) толгой хэсгийн хамт клиент хөтөч рүү илгээдэг. Энэ аргумент нь "Байршил:" гэж эхэлдэг.

  • bool $replace нь bool төрлийн нэмэлт шинж чанар юм. Өмнөх толгой хэсгийг дарж бичих үүрэгтэй. Хэрэв үнэн гэж тохируулсан бол өмнөх толгой эсвэл ижил төрлийн толгойг солих болно. Хэрэв аргументыг худал гэж тохируулсан бол толгой хэсгийг дахин бичихгүй. Анхдагчаар энэ утгыг үнэн гэж тохируулсан;
  • http_response_code – аргумент нь HTTP хариултын кодыг албаддаг. Хэрэв мөрийн аргумент хоосон биш бол кодыг суулгах нь амжилттай болно.

HTTP төлөвийн код нь серверийн хариултын дээд шугамын нэг хэсэг юм. Код нь гурван тооноос бүрдэх ба дараа нь англи хэл дээрх тайлбар бичвэртэй. Эхний цифр нь статусын ангиллыг хариуцдаг. Дахин чиглүүлэлт нь 300-аас 307 хүртэлх кодуудтай тохирч байна. Тэдгээрийн бүрэн тайлбарыг холбогдох техникийн баримт бичгээс олж болно.

Гадаад холбоосыг дахин чиглүүлэхийн тулд header() функцийг ашиглах үед түүний дуудлагын байршил маш чухал юм. Кодод энэ нь бүх html хаягуудын дээр байрлах ёстой:

Header() чиглүүлэлт ашиглах

Дотоод сервер дээр функц хэрхэн ажилладагийг харуулахын тулд та хоёр файл үүсгэх хэрэгтэй. Нэгийг нь redirect.php , нөгөөг нь redirect2.php гэж нэрлэе. Эхнийх нь дотор бид функцийн дуудлагыг дараах форматаар байрлуулна.

Өөр файлд бид мөрийг оруулав:

echo "Сайн уу! Та redirect2.php файлд байна";

Php руу чиглүүлэлт ашиглах хэд хэдэн практик жишээ:

  • http төлөвийн кодыг албадах – “байршил” төрлийн толгой() функцын эхний аргументыг ашиглах үед үндсэн төлөвийн код “302” (түр зуур зөөгдсөн) толгой хэсэгт шилжинэ. Энэ нь нөөцийг өөр домэйн нэр рүү шилжүүлэхэд асуудал үүсгэж болно. Хайлтын системд ийм түр зуурын чиглүүлэлт илүү удаан үргэлжилж магадгүй юм. Эцсийн эцэст хайлтын систем нь статусын кодыг байнга шинжилдэг. Мөн "түр нүүсэн" гэж бичсэн байна. "302" статусын кодыг "301" болгон хүчээр дахин бичих жишээ (байнга зөөгдсөн):

Хоёр үе шаттайгаар дахин бичих боломжтой. Эхний мөрөнд статусын кодыг дахин бичиж, хоёр дахь мөрөнд шинэ хаяг руу чиглүүлнэ.

Би саяхан htaccess руу хэрхэн дахин чиглүүлэлт хийх боломжтойг харуулсан бол одоо 301 серверийн чиглүүлэлтийн өөр хувилбар болох php чиглүүлэлт () сонголтыг санал болгож байна. Энэ яагаад хэрэгтэй вэ? - гэхдээ хаа сайгүй htaccess дээр зөв чиглүүлэлт хийх боломжгүй байдаг.

Тиймээс эхлээд дахин чиглүүлэлт ажиллах нөхцөлийг бичих хэрэгтэй. WordPress дээр бид кодыг header.php файл эсвэл таны сэдвийн аль ч файлд get_header() функцын дээр хамгийн эхэнд HTML тагны өмнө бичдэг. Код нь иймэрхүү байх болно:

Хэрэв танд локал байршилд wordpress руу php чиглүүлэлт хэрэгтэй бол, жишээ нь бид нэг категориос үндсэн хуудас руу дахин чиглүүлэхийг хүсэж байгаа бол дээрх кодыг категорийн гаралтыг (жишээ нь категори.php) идэвхжүүлдэг дурын сэдэв файлд бичиж болно. get_header() толгойн дуудлагын код;

Хариултын мөрөнд php дахин чиглүүлэлт хэрхэн ажилладаг вэ?

PHP дахин чиглүүлэлтийн тусламжтайгаар бид серверээс яг ижил хариултыг хүлээн авдаг бөгөөд үүнийг тохируулсан серверийн тохиргоогоор хийсэн юм шиг боловсруулалтын хурд арай бага байх болно. Chrome дахь серверийн хариуны дэлгэцийн агшин:

Үүнтэй ижил 301 чиглүүлэлт нь зөвхөн PHP дээр хэрэгждэг.

Яагаад 301 php дахин чиглүүлэлт ашиглах вэ? Та бүхэл бүтэн категори, ангилал зүй, VP шошгыг засах эсвэл Custum Post Type-ыг устгахгүйгээр хаах хэрэгтэй болдог. Жишээлбэл, бид агуулгыг шилжүүлсэн боловч холбоосууд нь аль хэдийн индекслэгдсэн байна.Энэ тохиолдолд 301 php чиглүүлэлт бидэнд туслах бөгөөд бид үүнийг хаана ч оруулах боломжтой. Мэдээжийн хэрэг, ийм дахин чиглүүлэлт нь серверийн тохиргооноос дахин чиглүүлэлтийн гүйцэтгэлээс доогуур боловч ангилал зүй эсвэл CPT-д зориулж асар том маск бичих нь маш том асуудал юм. 301 php чиглүүлэлт ажиллахгүй бол яах вэ?

Нөхцөл үүсээгүйн улмаас PHP руу дахин чиглүүлэх нь ажиллахгүй байж магадгүй тул эхлээд та дараах зүйлийг хийх хэрэгтэй.

  • PHP дахь нөхцөл байдлыг шалгана уу, жишээ нь "Тест" гэсэн цуурайг тэнд хаях;
  • Хэрэв нөхцөл байдал үүссэн бол бид дахин чиглүүлэх код хаана байрлаж байгааг харах хэрэгтэй; хэрэв энэ нь HTML хаягуудын доор байгаа бол энэ нь бидний асуудал юм. Бид бүхнээс дээгүүр байх ёстой
  • PHP-ээс сайтыг дахин чиглүүлэх чадварын ачаар бид htaccess даван туулах боломжгүй, эс тэгвээс бид даван туулах боломжгүй дахин чиглүүлэх механизмыг хэрэгжүүлж чадна :)

    Хэрэв танд асуулт байвал коммент хэсэгт эсвэл над руу бичээрэй.

    Энэ хуудсан дээрх хурдан навигаци:

    Хэрэв та скрипт бичиж, PHP-г дахин чиглүүлэхээр шийдсэн бол энэ алхамын давуу тал нь ойлгомжтой: PHP бол серверт чиглэсэн скрипт хэл юм; дахин чиглүүлэлт нь зочдын хөтөч дээр биш харин сервер дээрх скриптээр хийгдэх болно. Зарим дахин чиглүүлэлтүүдийг үйлчлүүлэгч тал дээр - js чиглүүлэлтээр (өөрөөр хэлбэл JavaScript дахин чиглүүлэлтээр) хийж болно.

    Энэ нь илүү уян хатан, олон талт арга бөгөөд та бусад аргуудаас ялгаатай нь PHP дээр олон төрлийн дахин чиглүүлэлт хийх боломжтой. PHP дээр хийж болох хамгийн түгээмэл дахин чиглүүлэлтийн төрлүүдийг энд дурдав: a) 301 PHP дахин чиглүүлэлт (байнгын дахин чиглүүлэлтийн статус), б) 302 PHP дахин чиглүүлэлт (түр дахин чиглүүлэх төлөв), в) Шинэчлэл.

    Энэ нийтлэл нь Htaccess зэрэг бусад нийтлэг шийдлүүдийг ашиглах боломжгүй тохиолдолд URL дахин чиглүүлэх арга замыг хайж байгаа шинэхэн вэбмастеруудад хэрэгтэй болно.

    PHP функцийн хэлний толгой хэсэг

    Жишээлбэл, та http://www.somewebsite.com/target.php URL руу дахин чиглүүлэхийг хүсч байна гэж бодъё. Хуудасны эх сурвалжийн PHP дээр та энэ дахин чиглүүлэх скриптийг дуудах хэрэгтэй:

    Мөн өөрийн орон нутгийн хостинг дээр энэ энгийн туршилтыг хийж үзээрэй:

    1) Текст засварлагчийг нээж, энэ кодыг оруулна уу:

    Үүнийг targetpage.php болгон хадгал.

    2) Өөр хоосон текст файлыг нээж, энэ кодыг оруулна уу:

    Үүнийг originatingpage.php гэж хадгал.

    3) Одоо вэб хөтчөө ажиллуулна уу. Хөтөчийнхөө хаягийн мөрөнд http://localhost/originatingpage.php гэж оруулна уу

    4) Та enter товчийг дарсны дараа энэ URL: http://localhost/originatingpage.php http://localhost/targetpage.php болон targetpage.php руу дахин чиглүүлж байгааг анзаарах ба "Сайн уу, энэ бол" гэсэн үгсийг харах болно. код "-x".

    Хамгийн нийтлэг алдаануудын нэг нь html дахин чиглүүлэх кодын дизайнд нуугдаж болно.

    Энэ туршилтыг хийж үзээрэй:

    Originatingpage.php скрипт рүү очоод ямар нэгэн HTML шошго нэмнэ үү:

    толгой('Байршил: http://localhost/targetpage.php');

    Танд ийм код байна гэж бодъё:

    Энэ бол дахин чиглүүлэх алдаа юм