2011-01-13 3 views
1

У меня есть веб-сайт, который передает некоторые переменные GET на разные страницы в PHP. Моя проблема в том, что теперь у меня есть url с переменными i.e. index.php? Category = categoryname, и это не очень запоминаемо.Маска домен/URL

Есть ли способ изменить URL-адрес на что-то вроде/categoryname, не дублируя страницу и не сохраняя ее в папках? Но также разрешить пользователям вводить/categoryname и перенаправляться на правильную страницу?

ответ

3

.htaccess Apache mod_rewrite, почти каждый профессиональный динамический веб-сайт использует этот метод (например, stackoverflow).

Метод полностью объясняется в this article гораздо лучше, чем я мог бы объяснить это в этом окне ответа.

3

Вы должны изучить некоторые правила apache Mod_Rewrite в файле .htaccess.

2

Решение обсуждается here:

это делается с помощью переписывания модуля Apache и это обрабатывает регулярные выражения . Вы должны поместить правило , как это в вашем файле .htaccess на корень вашего сайта:

RewriteRule^кошка/([0-9] +) $ /index.php?category=$1

^означает начало URL после www.example.com/ $ означает конец страницы.

www.example.com/cat/123

будет преобразован сервером для:

www.example.com/index.php?category=123

В PHP вы используете обычную переменную $ _GET ['id'] . Модуль перезаписи должен быть , который был включен apache ... Это в основном , используемый для создания формата URL независимо от serveride язык сценариев, поэтому .php в URL-адресе не является логичным. Именно поэтому i сменил его на продукт /. В .htaccess начинается с

RewriteEngine On Опции + FollowSymLinks RewriteBase/Здесь все правила перезаписи .. ...