Симулирането на директориите в URL-то наречено още Friendly URLs се използва за по-добро индексиране на страницата ви в търсачките и по-лесно запомняне на адреса от страна на вашите потребители. Преминаването към тази структора на линковете ви не е изобщо трудно и всеки, който желае да бъде намерен по-бързо в търсачките е желателно да го направи.
Какво точно представлява това? По принцип всяка динамична страница се изпълнява на базата на предадени параметри, като например:
http://www.site.com/index.php?rubrik=10&artikel=100
което означава, че при въвеждане на това URL ще се отвори файлът index.php и трябва да се отвори дадено съдържание с текущ номер 100 от рубриката 10. Но това за една търсачка е напълно неразбираемо, защото тя спира индексирането до "?". Т.е тя единствено ще индексира вашия файл index.php и ще го разглежда като една едиснствена цел, все едно дали вие имате 100 рубрики и 1000 теми. Но това нещо може да го промените, като симулирате директории и по този начин "надхитрите" търсачките. След симулацията вашето URL ще изглежда по селдния начин:
Да кажем, че рубрика 10 при вас носи името PHP, а заглавието на темата е "PHP за начинаещи" URL-то ще е:
http://www.site.com/artikel/PHP/10/PHP за начинаещи/100
Как интерпретира една търсачка горе написаното? Тя си представя че всичко след вашия домейн са директории и е принудена да индексира всичко, въпреки, че при вас тези директории не съществуват.
Подготовка
Преди да можем да симулираме директориите трябва да подготвим нашия сървър за тази стъпка. Създайте в директорията, в която ви се намира файла index.php един .htaccess файл и в него напишете следното:
CODE1
2
RewriteEngine On
RewriteRule ^(artikel)(/.*)?$ index.php
С RewriteEngine On активирате функцията на Apache за препращане от едно на друго място.
С RewriteRule ^(artikel)(/.*)?$ index.php указвате на сървъра да препрати всичко което започва с думата artikel, към файла index.php и да го изпълни като PHP апликация.
В случай, че получите следната грешка:
HTTP Error 403 - Forbidden
Internet Explorer
то това се дължи на факта, че конфигурацията на вашия сървър не позволява функцията препращане. Изпробвайте да напишете най-отгоре на вашия .htaccess файл следното:
CODE1
Options +FollowSymLinks
Ако това също не стане, за да може да кативирате опцията препращане са ви нужни администраторски права, защото трябва да промените конфигурацията на вашия сървър за съответната директория, по следния начин:
CODE1
2
3
Options +FollowSymLinks +SymLinksIfOwnerMatch
като по този начин е необходимо единствено в .htaccess файла да напишете:
CODE1
2
RewriteEngine On
RewriteRule ^(artikel)(/.*)?$ index.php
или
CODE1
2
3
AllowOverride All
като по този начин е необходимо да напишете:
CODE1
2
3
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(artikel)(/.*)?$ index.php
Ако това не ви помогне е желателно да информирате вашия hosting првайдер и да го попитате относно тези настройки.
След като вече сме настроили нашия сървър за препращането нека да видим как се обработват нещата в нашия PHP файл на име index.php.