Маскирование домена / URL - PullRequest
1 голос
/ 13 января 2011

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

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

Ответы [ 3 ]

3 голосов
/ 13 января 2011

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

3 голосов
/ 13 января 2011

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

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

2 голосов
/ 13 января 2011

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

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

RewriteRule ^ cat / ([0-9] +) $ /index.php?category=$1

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

www.example.com / cat / 123

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

www.example.com / index.php? Категория = 123

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

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

...