Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Apache+mod_rewrite

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Открыть новую тему     Написать ответ в эту тему

Vanya

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Значит так-с. (АПАЧ)
Есть такая конструкция http://domain.ru/?id=1
Надо чтобы была такая http://domain.ru/chapter1 ну или http://domain.ru/1
И ко всему прочему, чтобы это еще и работало. Есть такой механизЬм mod_rewrite и что то типа RwriteEngine on прописывается в .htaccess Но как это настраивается чтобы было как мне надо, я не знаю. Кто сможет чем помочь?
 
 


FAQ по Apache
Apache + mod_rewrite: замена ссылок
Руководство по URL преобразованиям
Модуль Apache mod_rewrite - подробнейшее описание на русском

Всего записей: 8 | Зарегистр. 19-09-2002 | Отправлено: 08:53 30-10-2002 | Исправлено: lynx, 01:01 15-02-2004
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xntx

Цитата:
 S:/www/htdocs/lang/.htaccess: RewriteLog not allowed here  

 
Реврайт_лог здесь не разрешен

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 17:06 08-07-2004
xntx



хнотик-багоискатель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
lynx
да догадался я, а что же с ним сделать?
закомментнул обе строки с RewriteLog, так он не реврайтит...
я собственно говоря нашел другой путь, можно поставить 403 на всю папку, а как эррордокумент прописать 404.php, но дело прЫнцЫпа, надо добить реврайты, потому что в дальнейшем нужны для работы скрипта...

----------
Hello world!

Всего записей: 5169 | Зарегистр. 15-02-2003 | Отправлено: 17:38 08-07-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xntx

Цитата:
да догадался я, а что же с ним сделать?  

ничего.. такое в htaccess не прописывается..
http://httpd.apache.org/docs/mod/mod_rewrite.html#RewriteLog

Цитата:
Context: server config, virtual host


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 17:53 08-07-2004
xntx



хнотик-багоискатель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
lynx
Cheery
большое спасибо! вроде работает
ЗЫ: я еще вернусь

----------
Hello world!

Всего записей: 5169 | Зарегистр. 15-02-2003 | Отправлено: 18:57 08-07-2004
ZiLot



Тот еще тип
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
WindowsXP. Apache 1.3 или 2.0 - не важно, везде результаты одинаковы.
В httpd.conf раскомментирую подключение модуля mod_rewrite. Файл модуля существует.
 
В httpd.conf в настройках вирт. хоста пишу:

Цитата:
RewriteLog N:/home/zilot/rewrite.log
RewriteLogLevel 9

 
Если в .htaccess пишу следующее:

Цитата:
RewriteEngine On
RewriteRule /test.html /index.php

то при вызове test.html получаю:

Цитата:
403 - Forbidden
You don't have permission to access /test.html on this server.

В лог попадает:

Цитата:
127.0.0.2 - - [27/Jul/2004:13:02:56 +0400] [zilot/sid#956320][rid#96a5b8/initial] (2) init rewrite engine with requested uri /test.html
127.0.0.2 - - [27/Jul/2004:13:02:56 +0400] [zilot/sid#956320][rid#96a5b8/initial] (1) pass through /test.html

 
Далее - убираю .htaccess
Пишу в настройках виртуального хоста в httpd.conf это же:

Цитата:
RewriteEngine On
RewriteRule /test.html /index.php

Перезапускаю Апач. При вызове test.html получаю:

Цитата:
400 - Bad Request
Your browser sent a request that this server could not understand.
 

В лог идет следующее:

Цитата:
127.0.0.2 - - [27/Jul/2004:13:06:56 +0400] [zilot/sid#954350][rid#96a5f0/initial] (2) init rewrite engine with requested uri /test.html
127.0.0.2 - - [27/Jul/2004:13:06:56 +0400] [zilot/sid#954350][rid#96a5f0/initial] (3) applying pattern '/test.html' to uri '/test.html'
127.0.0.2 - - [27/Jul/2004:13:06:56 +0400] [zilot/sid#954350][rid#96a5f0/initial] (2) rewrite /test.html -> /index.php
127.0.0.2 - - [27/Jul/2004:13:06:56 +0400] [zilot/sid#954350][rid#96a5f0/initial] (2) local path result: /index.php
 

 
Видимо дело в том, что в httpd.conf надо писать полные пути. Вопрос на засыпку - как?
В какую сторону копать? Весь день изучал идущие с Апачем доки - ничерта не нашел REwriteBase - это поможет отцу русской демократии?
И еще - как все же заставить его обрабатывать директивы mod_rewrite в .htaccess ? Ведь потом на хостинге у меня не будет доступа к апачевскому конфигу, а хочется полной совместимости.

Всего записей: 936 | Зарегистр. 12-11-2002 | Отправлено: 13:28 27-07-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ZiLot

Цитата:
Если в .htaccess пишу следующее:  

для данной диры сначала нужно было разрешить allowoverride FileInfo
тогда и не будет 403 ошибки.

Цитата:
Видимо дело в том, что в httpd.conf надо писать полные пути. Вопрос на засыпку - как?  

не обязательно..

Цитата:
В какую сторону копать? Весь день изучал идущие с Апачем доки - ничерта не нашел  REwriteBase - это поможет отцу русской демократии?  

ну дана же наверху (в шапке темы) ссылка на русский ресурс.. очень хорошо там написано.
если не используешь какие то условия, а просто перекидываешь, что достаточно просто.
redirect /test.html   /index.php
но и это должно работать..

Цитата:
RewriteRule /test.html /index.php

посмотри логи сервера.. напиши после /index.php [R] и посмотри, что будет в адресной строке и логах.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 16:40 27-07-2004
ZiLot



Тот еще тип
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery

Цитата:
для данной диры сначала нужно было разрешить allowoverride FileInfo  
тогда и не будет 403 ошибки.  

Уже прописано
AllowOverride All
 
Дописывание [R] в конце RewriteRule - ничего не меняет. В логах все то же самое.
 

Цитата:
если не используешь какие то условия, а просто перекидываешь, что достаточно просто.  
redirect /test.html   /index.php  

нет, это просто пример, на котором пытаюсь заставить работать mod_rewrite. Просто редирект в дальнейшей задаче не поможет.

Всего записей: 936 | Зарегистр. 12-11-2002 | Отправлено: 20:07 27-07-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ZiLot

Цитата:
Дописывание [R] в конце RewriteRule - ничего не меняет. В логах все то же самое.

[R] меняет то, что теперь браузеру выкидывается 302 заголовок и он уже идет дальше.
и логи не rewrite, а access..

Цитата:
нет, это просто пример, на котором пытаюсь заставить работать mod_rewrite. Просто редирект в дальнейшей задаче не поможет.

тогда попробуй так.

Цитата:
RewriteRule ^/test.html(.*) /index.php$1  

но у меня работает и так, как указано ранее..


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:13 27-07-2004
xntx



хнотик-багоискатель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
хм, люди, вот что надо, а не получается: чтоб все урлы корня, тоесть /xntx /someuser /lalala перекатывались в /user.php?param=xntx итп.  
и чтоб /images, /admin, /tpl и файлы типа /file.php не заменялись
 
Добавлено
для начала попробовал:
RewriteRule ^/(.+)$ /user.php?param=$1
но не работает
попробовал:
RewriteRule ^/user/(.+)$ /user.php?param=$1
тоже нет
а во так:
RewriteRule ^user/(.+)$ /user.php?param=$1
да, тогда попробовал:
RewriteRule ^(.+)$ /user.php?param=$1
получаем сервер эррор

----------
Hello world!

Всего записей: 5169 | Зарегистр. 15-02-2003 | Отправлено: 14:29 30-07-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xntx
RewriteCond %{REQUEST_URI}  !^/images/.*  [OR]
RewriteCond %{REQUEST_URI}  !^/admin/.*  [OR]
RewriteCond %{REQUEST_URI}  !^/tpl/.*  [OR]
RewriteCond %{REQUEST_URI}  !^/user\.php.*  
RewriteRule ^/(.+)$  /user.php?param=$1
 
зы: не проверял.


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:56 30-07-2004
xntx



хнотик-багоискатель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
неа, не работает, ввожу: localhost/xntx и выдает 404...

----------
Hello world!

Всего записей: 5169 | Зарегистр. 15-02-2003 | Отправлено: 03:59 31-07-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xntx

Цитата:
неа, не работает, ввожу: localhost/xntx и выдает 404...  

вот решение

Код:
 
RewriteRule ^/images(.*)$   /images$1 [skip=5]
RewriteRule ^/admin(.*)$   /admin$1 [skip=4]
RewriteRule ^/tpl(.*)$   /tpl$1 [skip=3]
RewriteRule ^/(.*)\.php$  /$1.php [skip=2]
RewriteRule ^/(.*)$  /user.php?param=$1
 

не трогаются файлы .php

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 05:37 31-07-2004
ZiLot



Тот еще тип
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery

Цитата:
тогда попробуй так.  
 
Цитата:RewriteRule ^/test.html(.*) /index.php$1  
 
но у меня работает и так, как указано ранее..  

Я меня, как только добавляю в .htaccess строку RewriteEngine On - при открытии любого url'а на этом хосте, вылетает 403.
Т.е. до RewriteRule дело даже не доходит...

Всего записей: 936 | Зарегистр. 12-11-2002 | Отправлено: 10:07 31-07-2004
xntx



хнотик-багоискатель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery
http://192.168.0.1/xntx

Цитата:
strip per-dir prefix: S:/www/htdocs/xntx -> xntx
applying pattern '^/images(.*)$' to uri 'xntx'
strip per-dir prefix: S:/www/htdocs/xntx -> xntx
applying pattern '^/admin(.*)$' to uri 'xntx'
strip per-dir prefix: S:/www/htdocs/xntx -> xntx
applying pattern '^/tpl(.*)$' to uri 'xntx'
strip per-dir prefix: S:/www/htdocs/xntx -> xntx
applying pattern '^/(.*)\.php$' to uri 'xntx'
strip per-dir prefix: S:/www/htdocs/xntx -> xntx
applying pattern '^/(.*)$' to uri 'xntx'
pass through S:/www/htdocs/xntx

почемуто у "xntx" нет слэша спереди
 
ZiLot
а что еще есть в .htaccess ?

----------
Hello world!

Всего записей: 5169 | Зарегистр. 15-02-2003 | Отправлено: 13:55 31-07-2004
ZiLot



Тот еще тип
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
xntx

Цитата:
а что еще есть в .htaccess ?

Ничего. Хотя в принципе, остальные директивы работают. Пока не работали только директивы mod_rewrite

Всего записей: 936 | Зарегистр. 12-11-2002 | Отправлено: 14:37 31-07-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ZiLot

Цитата:
Я меня, как только добавляю в .htaccess строку RewriteEngine On - при открытии любого url'а на этом хосте, вылетает 403.  
Т.е. до RewriteRule дело даже не доходит...

для диры должно быть разрешено Allowoverride Fileinfo
посмотрел бы в error.log - там так и сказано.
xntx

Цитата:
почемуто у "xntx" нет слэша спереди  


Цитата:
RewriteRule ^/(.*)$  /user.php?param=$1  

на  
RewriteRule ^(.*)$  /user.php?param=$1
и будет

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 19:39 31-07-2004
xntx



хнотик-багоискатель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery

Цитата:
на  
RewriteRule ^(.*)$  /user.php?param=$1  
и будет

дык я ж о том и говорю, что говорит мол server configuration error

Цитата:
да, тогда попробовал:  
RewriteRule ^(.+)$ /user.php?param=$1  
получаем сервер эррор



----------
Hello world!

Всего записей: 5169 | Зарегистр. 15-02-2003 | Отправлено: 19:56 31-07-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xntx

Цитата:
RewriteRule ^(.*)$  /user.php?param=$1  

сравни с  

Цитата:
RewriteRule ^(.+)$ /user.php?param=$1  

у меня первое работает.  
при запуске говорит? или уже при запросе?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:01 31-07-2004
xntx



хнотик-багоискатель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery
у меня не работает ни первый ни второй вариант
выдает 500 при запросе

----------
Hello world!

Всего записей: 5169 | Зарегистр. 15-02-2003 | Отправлено: 20:08 31-07-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xntx

Цитата:
у меня не работает ни первый ни второй вариант

в чем пишешь? в httpd.conf или htaccess?
и какая версия апача?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:10 31-07-2004 | Исправлено: Cheery, 20:12 31-07-2004
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Apache+mod_rewrite


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru