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

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



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

Цитата:
Apache/2.0.50 (Win32) PHP/4.3.7 Server at localhost Port 80

кстати, вот щас херню заметил, он выдает 500 только когда запрос попадает под этот паттерн
я решил убрать слешь у адреса на который перенаправляется, тоесть так:

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

он заработал, но не передает парамтер, сделал принт этого параметра из скрипта, показывает $_GET['param'] == user.php

 
 
Добавлено
сделал

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

передает в param = user.php[L]



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

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



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

Цитата:
он заработал, но не передает парамтер, сделал принт этого параметра из скрипта, показывает $_GET['param'] == user.php  

оно и понятно - делается в цикле..
он перекидывает файл на самого себя.
а не должен делать, так как пред. строка говорит, что не нужно обрабатывать php файлы. Покажи логи rewrite

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

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Никто не помог Ну и ладно сама разобралась  
htaccess:
 

Цитата:
 
IndexIgnore *
 
RewriteEngine On
 
RewriteRule ^category(.*).html browse.php?cat=$1
 
RewriteRule ^detail(.*).html detail.php?id=$1
 
RewriteRule ^cat_more(.*)-(.*).html browse.php?cat=$1&pg_which=$2
 
RewriteRule ^search_more(.*)-(.*).html search.php?keyword=$1&opt=0&pg_which=$2
 
RewriteRule ^gsearch_more(.*)-(.*).html search.php?keyword=$1&image.x=0&image.y=0&opt=2&pg_which=$2
 
ErrorDocument 404 http://www.bestcatalog.net/404.html
 
 

 
 
 
 
 
 
 

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



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

Цитата:
[Sat Jul 31 18:12:55 2004] [error] [client 127.0.0.1] mod_rewrite: maximum number of internal redirects reached.

угу, зацикливается на строке с проверкой на .php разрешение.

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

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



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

Цитата:
угу, зацикливается на строке с проверкой на .php разрешение.

ты уверен, что написал все так, как я указал? тогда он должен проходить мимо последней строки.
зы: еще есть rewriterule?? можно в самом конфиге запускать их по несколько раз.. правда и тогда не должно влиять..

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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:42 31-07-2004 | Исправлено: Cheery, 22:42 31-07-2004
Mira



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
люди поскажите что в настрой ках апаче не то.
вообщем проблема в следующем
 
.htaccess
RewriteEngine on
Options +FollowSymlinks
 
RewriteRule ^(.*)/$ $1.php
RewriteRule ^.*/(.*)/(.*)(jpg|gif|css)$ $1/$2$3
 
 
ввожу  
http://localhost/test/
 
говорит
Not Found
The requested URL /test.html.php was not found on this server.
 
(это при условии что в папке есть как test.php так и test.html, случайно заметил)
если есть только test.php то говорит
Not Found
The requested URL /test.php.php was not found on this server.
 
а если test.php вообще в папке нет (то обрабатывает равильно)
говорит
Not Found
The requested URL /test.php was not found on this server.
(но в этом случае его дейсвительно нету на сервере)
 
с чем это может быть связано.
 
огромное спасибо.

Всего записей: 1627 | Зарегистр. 25-11-2003 | Отправлено: 12:22 06-08-2004 | Исправлено: Mira, 12:27 06-08-2004
Aslan

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто может мне точно ответить. Если у меня есть доступ к htaccess, но модуль mod_rewrite не установлен. Как писал rbt я хочу воспользоваться ErrorDocument 404 /index.php и в зависимости от $PHP_SELF формировать страницы. Вопрос: почему будут проблемы с поисковиками?

Цитата:
ErrorDocument 404 /all.php, где последний и есть обработчик. А теперь представьте себе сколько редиректов будет у сайта. Т.е. у меня по каждой ссылке редирект будет что ли? А как пои сковая машина будет себя в таком случае вести? Не плюнет ли она на все редиректы?  


Всего записей: 12 | Зарегистр. 08-06-2004 | Отправлено: 02:04 29-08-2004
SafeWay



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Организовал так:  
RewriteEngine on  
RewriteRule ^([a-zA-Z0-9]+).ch?(.*)$ index.php?mod=$1&$2  
(Из news.ch в index.php?mod=news соответственно.)  
 
Однако прошло не так гладко, как полагалось, а именно:  
путь к js, html файлам, тоже преобразовывается, и соответсвенно это влекёт за собой ошибки.  
 
Как убрать этот баг/недоработку.  
 
ПыСы: в других темах это не нашёл.  
 
Добавлено  
С картинками всё ок.
 
пробовал:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/inc/  
RewriteRule ^([a-zA-Z0-9]+).ch?(.*)$ index.php?mod=$1&$2
 
Всё равно файлы из inc/js/ не подключает...

----------
Hosted by http://www.balthost.ee

Всего записей: 365 | Зарегистр. 28-12-2003 | Отправлено: 05:07 29-08-2004
Cheery



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

Цитата:
Всё равно файлы из inc/js/ не подключает...

запрос только так и выглядит?  

Цитата:
Из news.ch

то есть файлы с расширением ch?
или какие угодно, кроме заданного набора?

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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 05:16 29-08-2004
SafeWay



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery
<script language="JavaScript" src="inc/js/bbcode.js"></script>
 
news.ch - это для примера, просто единственное место, где js файл подключается.
подобная проблема в регистрации, там:
<iframe src="license.html"></iframe> - файл тож не грузиться.

----------
Hosted by http://www.balthost.ee

Всего записей: 365 | Зарегистр. 28-12-2003 | Отправлено: 05:28 29-08-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SafeWay
ну так понятно почему.. у тебя этот файл в корне?  

Цитата:
RewriteCond %{REQUEST_URI} !^/inc/  

это показывает, что не применять правило, если файл в дире /inc/ - то есть от корня.
в твоей записи
Цитата:
src="inc/js/bbcode.js">

считается от того места, где лежит файл. Он в корне? Мне кажется, что нет.


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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 05:30 29-08-2004
SafeWay



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery
пробовал:
RewriteCond %{REQUEST_URI} !^inc/  
аналогично

----------
Hosted by http://www.balthost.ee

Всего записей: 365 | Зарегистр. 28-12-2003 | Отправлено: 05:46 29-08-2004
Cheery



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

Цитата:
RewriteCond %{REQUEST_URI} !^inc/    
аналогично

почитай мануал..
RewriteCond %{REQUEST_URI} !/inc/
если не сработает, то  
RewriteCond %{REQUEST_URI} !inc/


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

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



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery
да, спасиб
RewriteCond %{REQUEST_URI} !inc/  - супер

----------
Hosted by http://www.balthost.ee

Всего записей: 365 | Зарегистр. 28-12-2003 | Отправлено: 05:57 29-08-2004
Mira



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
люди , возможно сейчас задам не кореткный вопрос , сам понимаю , что что то не то тут, но все же ...
 
можно ли сделалть так, что хтаксес , а в часности прописаный в нем мод реврайт (RewriteEngine on) работал только в папке где он лелжит а не в других
 
т.е. что бы было понятно
есть папки  
 
folder
.htaccess
 
так в ней прописано заменять все папки на файлы RewriteRule ^(.*)/$ $1.php [L]
но если у меня дейсвительно обращение идет к папке folder как мне сделать так , что бы небыло проблем. А то при обращении любого скрипта в папке  folder (к корневой) оно пытается заменить ее на folder.php
 
спасибо
 

Всего записей: 1627 | Зарегистр. 25-11-2003 | Отправлено: 16:26 07-10-2004
Cheery



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

Цитата:
но если у меня дейсвительно обращение идет к папке folder как мне сделать так , что бы небыло проблем. А то при обращении любого скрипта в папке  folder (к корневой) оно пытается заменить ее на folder.php  

мой пост выше.. попробовал бы прочитать.

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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:44 07-10-2004
Tropin



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Здравствуйте,  хочу обсудить в данной теме безопасность использования mod_rewrite

Цитата:
Если ваш администратор запретил перегрузку конфигурационной директивы FollowSymLinks в пользовательских каталогах, в этом случае вы не сможете использовать механизм преобразований. Это ограничение нужно по соображениям безопасности.

На этот случай имеется другая директива - SymLinksIfOwnerMatch

Цитата:
SymLinksIfOwnerMatch - сервер будет следовать только тем символическим связям, для которых целевой файл или каталог имеют тот же идентификатор пользователя что и связь.

 
Но вот появляются вопросы:
1. Какая вообще безопасность? что может произойти и чего следует бояться? (особенно, когда директивы используются в папках cgi-скриптов)
 
2. Как определить какой идентификатор пользователя имеет связь??? (ну про файл, я думаю, понятно :)...
 
3. Как скажется влияние директивы на производительность?

Всего записей: 538 | Зарегистр. 25-11-2002 | Отправлено: 09:30 13-10-2004
nastavnik



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Последняя надежда на вас, люди..
 
нужно из http://myname/?forum=programming
сделать http://myname/programming
 
В форуме искал и фильтром пользовался.. =(
 
нашел только такое:
RewriteEngine on
RewriteRule ^\?([0-9]*)$ /index.php?forum=$1
 
но тогда получается http://myname/index.php/programming

Всего записей: 46 | Зарегистр. 21-09-2004 | Отправлено: 19:18 18-10-2004
Tropin



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
nastavnik
Учи паттерны!
RewriteRule ^\?forum=(.*)$ /$1

Всего записей: 538 | Зарегистр. 25-11-2002 | Отправлено: 10:40 19-10-2004 | Исправлено: Tropin, 10:43 19-10-2004
nastavnik



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Tropin
спасибо.
 
All
У меня такая проблемка:
Индексный файл должен быть - index.html
Есть также жизненно важный файл index.php
При запросе http://myname/?forum=programming грузится такая вот ссылка http://myname/ndex.html?forum=programming (должно конечно http://myname/ndex.php?forum=programming)
Подскажите как устранить проблему с помощью mod_rewrite

Всего записей: 46 | Зарегистр. 21-09-2004 | Отправлено: 20:29 22-10-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