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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
mitrofan



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Помогите сделать такую фишку (ЧПУ или короткие урл) через mod_rewrite под winXP/apache/php например как на кадетс.ру или на сиберфайт.ру  
 
есть  
  www.name.com/index.php  
  www.name.com/story.php?start=0&file=asd  
  www.name.com/story.php?start=0&file=asdasd  
  www.name.com/guesbook.php  
 
хочу сделать  
  www.name.com/news/  , www.name.com/news/1/  , www.name.com/news/2/    
  www.name.com/story/,  www.name.com/story/asd  / , www.name.com/story/asdasd/    
  www.name.com/guesbook/  
 
прописывал в .htaccess  
 RewriteRule ^news(.*)$ index.php работает , а если поставить слеш т.е.  
 RewriteRule ^news/(.*)?$ index.php запускается но все ссылки меняются  
на www.name.com/news/news/,  www.name.com/news/story/  и т.д.  
 
Если кто то знает или сталкивался с такой проблемой напишите пожалуйста  

Всего записей: 76 | Зарегистр. 28-11-2002 | Отправлено: 19:19 30-10-2003
Bespeka



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
аналогичная проблема:
 
есть 2 варианта динамики:  
1) http://www.domain/folder/?a=show&type=1
2) http://www.domain/folder/?a=show&id=9
 
хотелось бы получить  
1) http://www.domain/folder/type/1
2) http://www.domain/folder/id/9
 
если можно, черкните полностью все, что надо в htaccess запихнуть
Спасибо!
 
Добавлено
З.Ы. как я понимаю, можно htaccess ложить прямо в  http://www.domain/folder/

Всего записей: 218 | Зарегистр. 22-08-2003 | Отправлено: 07:12 31-10-2003
ZiLot



Тот еще тип
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Видимо сюда в тему будет.
 
Апач стоит на Мастдае ХР.
В конфиге апача мод_реврайт прописан на загрузку, НО при вызове php_info() в разделе "Additional Modules" никаких модулей нет. Значит ли это что модуль не загружается? (по идее, он там и не должен отображаться - это ведь инфа по ПХП а не по апачу, просто где-то что-то такое слышал)
 
Сейчас, если в .htaccess дописать "RewriteEngine On" то при входе по ссылке hттp://domain.ru/что-то_там получаю ошибку 403 и строчку "You don't have permission to access /что-то_там on this server" (причем до РеврайтРулез'ов дело и не доходит, но если в них сделать ошибку, то вылетит Error 500 - Внутренняя ошибка сервера)
При загрузке модуля пробовал писать и полный путь и относительный - одно и то же
 
Такая проблема только с mod_rewrite - например ограничение доступа через .htaccess прекрасно работает.
 
Добавлено
ЗЫ: Apache 2.0

Всего записей: 936 | Зарегистр. 12-11-2002 | Отправлено: 15:56 07-02-2004
ZiLot



Тот еще тип
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Хм... Неужели такой сложный вопрос?




Подъем тем запрещен. lynx.

Всего записей: 936 | Зарегистр. 12-11-2002 | Отправлено: 22:57 08-02-2004 | Исправлено: lynx, 23:36 08-02-2004
natpoit



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите, пожалуйста, , написать в .htaccess  
RewriteEngine on  
 
чтобы линк в форме  
 
http://www.domain.com/browse.php?cat=xxx  менялся на  
http://www.domain.com/xxx/browse.html  
 
и  
http://www.domain.com/detail.php?id=xxx  менялся на  
http://www.domain.com/xxx/detail.html  
 
 
Заранее спасибо!

Всего записей: 801 | Зарегистр. 31-08-2002 | Отправлено: 22:43 19-06-2004
xntx



хнотик-багоискатель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ой как у вас тут про апач все запущено... Вообще не понятно где обсуждают 1.3 под виндой... ну ладно...
Вобщем, чтоб не создавать новую тему, спрашиваю здесь, а вы как знатоки данного форуме уже пошлите куда надо.
Как поставить mod_rewrite под апач 1.3 который ставился с пакетом myserver?
Вопрос интересует с теоретической точки зрения. Стоит ли с этим мучится, надо ли чтото там компилить, или лучше просто поставить 2.х, настроить ручками пхп и прикрутить реврайт?
Заранее Спасибо.

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

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



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

Цитата:
Как поставить mod_rewrite под апач 1.3 который ставился с пакетом myserver?  

дык.. у него есть уже mod_rewrite.so
просто сними комменты в httpd.conf

Цитата:
Вопрос интересует с теоретической точки зрения. Стоит ли с этим мучится, надо ли чтото там компилить, или лучше просто поставить 2.х, настроить ручками пхп и прикрутить реврайт?  

кому то нравится 1.. кому то второй. это дело вкуса. и там и там по умолчанию этот модуль есть.

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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 03:14 27-06-2004
Demetrio

uid=0
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот кстати небольшая заметка на тему 'Apache 1.x vs. Apache 2.x'
 
http://www.onlamp.com/pub/a/apache/2004/06/17/apacheckbk.html

Всего записей: 9967 | Зарегистр. 29-05-2002 | Отправлено: 15:53 27-06-2004
xntx



хнотик-багоискатель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
всем привет.  
вот и моя очередь пришла реврайты покорить.
есть задача: имеем папку /lang/ на сервере. имеем еще одну папку в ней. имеем пустой файл index.htm чтобы небыло листания, имеем файл 404.php который просто выдает юзеру хеадерами:

Цитата:
HTTP/1.0 404 Not Found

и всего делов.
имеем .htaccess. что в нем надо прописать (скажите от начала и до конца) чтобы ВСЕ запросы переходили на 404.php (эта папка только инклудится, так что не надо чтоб кулхацкеры об ней знали)
 
Добавлено
ЗЫ: я наконец поставил своими руками "Apache/2.0.50 (Win32) PHP/4.3.7"

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

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



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

Цитата:
имеем .htaccess. что в нем надо прописать (скажите от начала и до конца) чтобы ВСЕ запросы переходили на 404.php  

 
А при чем тут реврайт то?
Если страндартная директива редирект:
 
http://httpd.apache.org/docs-2.0/ru/mod/mod_alias.html#redirect
 

Цитата:
Redirect Directive
Description:
Sends an external redirect asking the client to fetch a different URL
Syntax:
Redirect [status] URL-path URL
Context:
server config, virtual host, directory, .htaccess
Override:
FileInfo
Status:
Base
Module:
mod_alias
 
The Redirect directive maps an old URL into a new one. The new URL is returned to the client which attempts to fetch it again with the new address. URL-path a (%-decoded) path; any requests for documents beginning with this path will be returned a redirect error to a new (%-encoded) URL beginning with URL.
Example:
 
Redirect /service http://foo2.bar.com/service  

 
 
 
 

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



хнотик-багоискатель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
lynx
насколько я понял, ЭТО заставляет юзера послать запрос на другой адрес
Цитата:
Sends an external redirect asking the client to fetch a different URL  


Цитата:
The new URL is returned to the client which attempts to fetch it again with the new address.

а мне нужно сделать так, как будто бы эта папка просто не существует.


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

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



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Так. Давай еще раз. Что должен делать реврайт? Реврайт переписывает запросы.  
 
Например при запросе index.html выдает figvam.html
 
Какой у тебя запрос на какой должен быть переписан?
 

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



хнотик-багоискатель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
lynx
у меня запрос типа "что-угодно" (точка) должен переписываться в 404.php

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

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



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

Цитата:
у меня запрос типа "что-угодно" (точка) должен переписываться в 404.php

 
RewriteEngine on
RewriteLog "путь/rewrite.log"
RewriteLogLevel 0
RewriteRule ^/*.$ $1/papka/404.php
 
 

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



хнотик-багоискатель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
lynx
честно говоря ни.... не понял.
в "путь/rewrite.log я просто прописал "реврайт.лог", пусть пишет тут-же, так можно?
а в какой папке должен лежать этот htaccess?
у меня кстати 404.php в той-же лежит
и откуда берется $1 если там нигде скобки нет?
вобщем мой апач, как я ему это не пихаю, молчит (тоесть запросы типа http://localhost/lang/something не перенаправляет на 404.php)

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

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



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хочу чтобы все запросы к сайту обрабатывал один скрипт, поэтому пытаюсь все запросы перенаправить на него, естественно реально существующие папки из перенаправления нужно исключить. Пробую так:
 
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/images/
RewriteCond %{REQUEST_URI} !^/css/
RewriteRule ^main$ - [L]
RewriteRule (.*) /main/ [L]
 
но получаю только "Internal Server Error"

Всего записей: 257 | Зарегистр. 06-06-2001 | Отправлено: 12:58 07-07-2004
lynx



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

Цитата:
в "путь/rewrite.log я просто прописал "реврайт.лог", пусть пишет тут-же, так можно?  

 
Ну, если Апач не ругаетсся, то можно, но лучше указывать полный путь, не урл, а путь, от корня /
 

Цитата:
а в какой папке должен лежать этот htaccess?

 
Ну, из какой хочешь, чтобы работало.
 

Цитата:
у меня кстати 404.php в той-же лежит


Цитата:
RewriteRule ^/*.$ $1/404.php  

 

Цитата:
и откуда берется $1 если там нигде скобки нет?

 
Если хочешь понять, как это работает, то читай доки в первом посте.
 
Daiz13

Цитата:
но получаю только "Internal Server Error"  

 
Это означает, что само правило реврайта тут не при чем, а ошибся ты где-то в синтаксисе Апача. Во первых, посмотри логи Апача - что пишется там.
Во вторых, дай реврайту логи писать, может он из-за этого обижается.
И поставь логЛевел 9 на время тестирования - увидишь ошибки в своем правиле.
 
 
RewriteLog "/путь/rewrite.log"
RewriteLogLevel 9

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



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

Цитата:
RewriteEngine on  
RewriteLog "/www/logs/rewrite.log"  
RewriteLogLevel 0  
RewriteRule ^/*.$ $1/404.php

не работает
 
прописал:

Цитата:
RewriteEngine on  
RewriteLog "s:/www/logs/rewrite.log"  
RewriteLogLevel 0  
RewriteRule ^/*.$ $1/404.php

не работает.
 
прописал:

Цитата:
RewriteEngine on  
RewriteLog "s:\www\logs\rewrite.log"  
RewriteLogLevel 0  
RewriteRule ^/*.$ $1/404.php

не работает.
.htaccess и 404.php лежат в s:\www\htdocs\lang
 

Цитата:
Если хочешь понять, как это работает, то читай доки в первом посте.  

прочтал:

Цитата:
RewriteRule обратные_связи: Это обратные связи вида  
$N  
 
(0 <= N <= 9) предоставляющие доступ к сгруппированным частям (в круглых скобках!) шаблона из соответствующей директивы RewriteRule (единственной, следующей сразу за текущим набором директив RewriteCond).  

тоесть, работает как в обычном перловском RegExp... все равно не пойму откуда берется...

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

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



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

Цитата:
RewriteEngine on  
RewriteLog "путь/rewrite.log"  
RewriteLogLevel 0  
RewriteRule ^/*.$ $1/error/error.html  

 
И у меня все работает....
 
пропиши LogLevel 9  
и посмотри, что не работает
 
Добавлено
Просто может у тебя не все директивы разрешены в .htaccess
Сначала добейся работы в конфиге, а потом будешь выносить в .htaccess
 
Или пропиши для папки:
 
AllowOverride all

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



хнотик-багоискатель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
lynx
мдяя, было AllowOverride None.
но час отчасу не легче, прописал, теперь хтакцесс работает, но выдает 500...
 
Добавлено
апач в логах пишет:

Цитата:
[Thu Jul 08 14:52:41 2004] [alert] [client 127.0.0.1] S:/www/htdocs/lang/.htaccess: RewriteLog not allowed here


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

Всего записей: 5169 | Зарегистр. 15-02-2003 | Отправлено: 16:10 08-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