მარტივად აღსაქმელი URL

ჩვეულებრივ ცვლადის მნიშვნელობა (მაგალითად გვერდის ID ნომერი) გადაეცემა საიტებს URL მისამართში კითხვის ნიშნის შემდეგ მდგომი GET-მოთხოვნის საშუალებით.

*/article.php?id=148
*/news.php?topic=4&year=2003&month=10 - სიახლეები თემის მიხედვით-4 (სპორტი), 2003 წლის ოქტომბრის მიხედვით.

მსგავსი მისამართები გასაგებია პროგრამისტებისთვის, მაგრამ ისინი რთული აღსაქმელია ჩველებრივი მომხმარებლებისთვის.

URL სტრუქტურის მოწესრიგების შემდეგ იგივე მისამართები გამოიყურებიან შემდეგნაირად:

*/article/148/
*/news/sport/2003/10/ - სიახლეები თემის მიხედვით-სპორტი, 2003 წლის ოქტომბრის მიხედვით.

დამეთანხმებით, რომ ჩვეულებრივი მომხმარებლისთვის მარტივდება მისამართის დამახსოვრება.

რეალიზაცია

Apache (ვებ-სერვერი)-ში არსებობს მოდული mod_rewrite, რომელიც ფლობს URL-ს უამრავ ინტერპრეტაციის შესაძლებლობებს. 

.htaccess ფაილში რეგულარული გამონათქვამების საშუალებით ხორციელდება URL-ს გარდაქმნა საჭირო ფორმატში. მაგალითად:

RewriteEngine on
RewriteRule ^article/([0-9]+)/? article.php?id=$1 [L]
პირველი ხაზი რთავს mod_rewrite მოდულს. მეორე ხაზზე მითითებულია, რომ ვებ-სერვერი /article/148/-ის მსგავსი URL-ს მოთხოვნის შემთხვევაში დაუკავშირდეს /article.php?id=148-ს.

შემთხვევები როდესაც Friendly URL-ს გამოყენება არ არის მიზანშეწონილი:

* როდესაც მომხმარებელი ვერ ხედავს მისამართს (მაგალითად AJAX) - რამეთუ ტყუილად მოხდება სერვერის რესურსების გამოყენება.
* ადმინისტრირების გვერდები, C-პანელი, CMS და სხვა, მაშინაც კი თუ გვერდი არ საჭიროებს საძიებო სისტემებში მოძიებას.
* თუ გვერდზე მუშავდება ფორმიდან გაგზავნილი მონაცემები (მაგალითად მომხმარებლების რეგისტრაცია, ახალი პროდუქტის დამატება და ა.შ.).

www.generateit.net/mod-rewrite/ საიტზე თქვენ მარტივად მოახერხებთ .htaccess-ისთვის კოდის გენერირებას.