Бывают урлы вроде:
www.mysite.ru/events.php - Это банально
Бывают такие:
www.mysite.ru/?page=news&act=add - Все страницы обрабатываются обрабатываются в одном скрипте, но в адресе много мусора
ибывает лучший вариант:
www.mysite.ru/news/add/
Подход к его реализации нетривиален, и лчно я знаю только один (плохой) способ, как это сделать. Через ErrorDocument 404 /index.php и дальше анализ $_SERVER["REQUEST_URI"].
Информации о том, как это сделать правильно нигде инете не нашел. Если вы расскажете нубу, что делать, или поделитесь ссылкой, я буду очень благодарен. Спасибо
Читай про ModRewrite. через rewriteEngine это делается.
юзай .htaccess
яндексом или гуглом очень быстро находится нужная инфа
Это делается при помощи ModRewrite и .htaccess
http://wm-help.net/my-articles/article/mod_rewrite1.htm
http://wm-help.net/my-articles/article/mod_rewrite2.htm
ну вообщем тебе суть уже ответили
а вообще даже строку могу подсказать в файле .htaccess какую написать
вот тебе пример (но не единственный способ реализации)
RewriteEngine On
RewriteRule([^/].*)index.php?alias=1&request=$1
RewriteEngine on
RewriteRule !(^public/) index.php
php_flag magic_quotes_gpc off
php_flag register_globals off
————————–
В папке public лежит всё, что не нужно реврайтить
в индексном файле идёт анализ$_SERVER["REQUEST_URI"]
зайди сюда:
http://www.mod-rewrite-wizard.com/
>зайди сюда:
http://www.mod-rewrite-wizard.com/
Охуенная вещь ) Спасибо
Плиско AmdY Вячеслав,
хехе, я использую в точности такой же реврайт ))
кстати при таком реврайте и правильной реализации анализа реквеста приложение становится абс независимым от наличия ModRewrite (ну мало ли)
в случаях его отстутсвия просто будет index.php/path/path/?get=
Угу, мона юзать и без реврайта.
Не люблю множественные правила в .htacces и с помощью РНР роутинг делать удобнее и гибче.
А через ErrorDocument способ не плохой, он позволяет делать вещи типо http://blog.my/…. , http://amdy.blog.my/...
есть ещё возможность делать чпу через мультивью а апаче, но он мне не нравится и не разу не использовал.
только без rewrite у тебя пост-запросы проходить не будут.
это с чего бы?
гы, Бес ляпнул.
var.domain.com делается настройкой днс. чтоб все запросы шли на domain.com, а потом уже в пхп (да и любом другом языке) адрес парсится и получается эта самая переменная var …
да я не про домены, а к тому, что через errorDocument post-запросы не идут.
а, слышал про такую проблему, но она решается.
, можно погуглить чтобы найти решение
чёрт, я конфиг того апача куда-то засунул, найти не могу
Проблема в том, что серверу НЕЧЕМ обрабатывать POST-запрос, т.к. он возвращает 404 ошибку. Типа файла нет, твои запросы обрабатывать нечем.
Не в каждом случае хостер тебе разрешит править конфиг апача. А я бы решил проблему так (тока што придумал):
Если урлы обрабатываются через errorDocument, то все формы с post обрабатываются через ajax, который лежит, скажем, в /ajax.php. пользователю на это начхать, он урла нигде не увидит, если копать не будет. если при выполнении пост-запроса нам необходимо перезагрузить страницу, то при возвращении из ajax.php результата делаем document.location.href = document.location.href;
имхо, вполне позволительно, если:
а) в лом копаться в rewriteEngine или оно не установлено
б) не дают пофиксить конфиг от апача.
но хз как на счет индексации – не проверял. индексируют ли поисковики страницы, которые идут с заголовком 404 Not Found.
ну так user.domain.com делается на серверах, где можно править конфиг апача, а чаще на нём крутится лишь один проект.
а ajax запрос посылаентся только на на тот же домен, я на этом обжёгся однажды
а разве нельзя делать Запрос на урл типа http://other.site.org/someajaxprocessor.php?