проблема в том что я все настроил, много исходников перебрал и мануалов. кажется все норм. сделал. сайт грузится а вот RewriteRule не работает Код (Text): RewriteEngine on Options +FollowSymLinks RewriteRule ^.htaccess$ - [F] RewriteRule ^([a-z]+)/?$ index.php?page=$1 Код (Text): httpd.conf LoadModule rewrite_module modules/mod_rewrite.so <Directory "/home/admin/www/"> Options Indexes Includes AllowOverride All Order allow,deny Allow from all </Directory> AccessFileName .htaccess <Files ~ "^\.ht"> Order allow,deny Deny from all </Files> в браузере отображается Код (Text): http://site.ru/index.php?page=news и сайт нормально работает
проблема в том что надо Код (Text): http://site.ru/news/ а у меня Код (Text): http://site.ru/index.php?page=news
Ага. И? Вы полагаете, ЧПУ чудесным образом заработает само? Или все же для его работы надо не только настроить сервер, но и написать логику работы?
Ссылки-то кто у тебя генерирует? Файл .htaccess - он только обрабатывает ссылки, которые уже пришли. А вот генерацией ссылок кто занимается? Вот там и надо менять.
хз ! реврайтит ли реврайт .. потому каr он предназначен для превращения из http://site.ru/news/ в http://site.ru/index.php?page=news а вот отображения вида http://site.ru/news/ отвечает Код (Text): <a href="/news/">link</a>
т.е. мне нужно сначало переписать news.php, чтоб там ссылки были чарез "/" а потом спомощью htaccess'a мы его разбираем на $_GET[] состовляющие. в index.php есть ссылка site.ru/news/ htaccess его превращает в index.php?page=news и потом news.php обрабативыает его?
не-а! смотря откуда ссылка .. если у тя все в индексе .. то нафиг тебе ньюс ? указываешь ньюс ... а реврайтится в запрос к индексу
Почему это? Общий алгоритм он правильно понял. А с ошибками - сейчас начнёт разбираться - сам увидит.
мне нужно понять, сам логоритм написания. я хочу создать юзербар, у него есть свой индекс. но у него есть в url php запросы (?s=p$id=123) мне его нужно переделать в (/p/123.jpg) т.к. у форумов в подписи, есть защита от php запросов. А вот ссылка на картинку проходит!
например : есть index.php и есть запрос к нему index.php?s=p&id=123 благодоря реврайт ссылка <a href="/p/123">link</a> может выглядеть ДЛЯ СЕРВЕРА как index.php?s=p&id=123 но в браузер всетаки надо записывать <a href="/p/123">link</a> чтобы в адресной строке его было то что ты хочешь ! Код (Text): RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]*)/([^/]*)$ index.php?s=$1&id=$2 [L,QSA] <-- гуру поправте если не так .. непомню точно синтаксис! Пригодится ;-)
Код (Text): RewriteCond %{REQUEST_FILENAME} !-f на скоко я понял, ето игнорирования, а хотя потом пойму. Код (Text): ^([^/]*)/([^/]*)$ Код (Text): ^(.*)/(.*)$ не пойдет?
В двух словах. Твой скрипт генерирует ссылки. В данный момент - назовём их "php-обрАзные". (?s=p$id=123) Далее - юзер тыкает на эту ссылку. В результате его тыканья получается http-запрос. Этот запрос идёт на сервер, там язык php его "понимает", разбирает и что-то делает. Как это будет выглядеть с mod_rewrite: Твой скрипт генерирует ссылки. В виде (/p/123.jpg). Никаким php в этих сслылках и не пахнет. Поэтому, если эти ссылки отдать серверу, на котором нет mod_rewrite, то он попытается найти папку "/p/", а в этой папке найти файл "123.jpg". А вот если на сервере стоит mod_rewrite, то, когда запрос пойдет от юзера, то этот mod_rewrite подхватит этот запрос и обработает. В результате его работы запрос самому серверу отдастся в виде (?s=p$id=123), и дальше, как обычно, поедет на обработку php-модулю. Так понятен механизм? Немного утрированно, зато просто.
пережевали, ну теперь можно и проглотить. Спасибо всем. Пойду мучить свой сайт. Если не получиться, то сгрызу комп, и буду спокойным смотреть теле-сериалы З.Ы. у вас есть тут мануальчик про ето, киньте етот текст, возможно кому то так же поможет.
если б был - я бы тебе и дал ссылку, а не своими словами описывал. 2All: Мож кто из старших товарищей подкинет ссылку?