imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 30.01.2005, 22:43     # 1
vitaminov-net
Junior Member
 
Регистрация: 24.08.2003
Сообщения: 60

vitaminov-net Известность не заставит себя ждать
mod_rewrite (вопрос)

Пожалуйста помогите,

ндо срочно сделать, а разобраться не могу (((


Задача в слудующем:
есть: pub.php?l=rus&linkpage=hotels&linkpage2=fadaer&linkpage3=mosv&idpub=56 7

Надо сделать:
rus/hotels/fadaer/mosv/567/


Делаю в htacess так:

RewriteEngine on
Options +FollowSymlinks
RewriteRule ^rus/(.*)?/?$ pub.php?l=rus&linkpage=$1&linkpage2=$2&linkpage3=$3&idpub=$4 [L]


а не работает (((
vitaminov-net вне форума  
Старый 31.01.2005, 00:08     # 2
zaartix
Junior Member
 
Регистрация: 24.04.2004
Сообщения: 66

zaartix Нимб уже пробиваетсяzaartix Нимб уже пробивается
[офф]
Можно и не через mod_rewrite, а средствами php
Как вариант вот пример:
if ($PATH_INFO) {
$path=ereg_replace('^/','?',$PATH_INFO);
$path=preg_replace("!\?(.*?)/!si","&\\1=",$path);
$path=preg_replace("!/(.*?)/(.*?)!si","&\\1=\\2",$path);
parse_str($path);
}
а ссылки имеют вид:
http://site.com/index.php/contacts/our - к примеру

только не везде апач передает скрипту эту переменную $PATH_INFO, всмысле не на всех серверах. На апаче2 я так и не смог сделать это, на первом все ок.
__________________
даже если спирт замерзнет - буду грызть его зубами. Все-равно его не прошу потому, что он хороший
zaartix вне форума  
Старый 31.01.2005, 00:15     # 3
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
RewriteRule rus/(.*)?/(.*)?/(.*)?/(.*)?/(.*)?/?$ pub.php?l=rus&linkpage=$1&linkpage2=$2&linkpage3=$3&idpub=$4
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 31.01.2005, 00:46     # 4
vitaminov-net
Junior Member
 
Регистрация: 24.08.2003
Сообщения: 60

vitaminov-net Известность не заставит себя ждать
Hubbitus

что то не работает, сделал так:
RewriteEngine on
Options +FollowSymlinks
RewriteRule ^rus/(.*)?/(.*)?/(.*)?/(.*)?/(.*)?/?$ pub.php?l=rus&linkpage=$1&linkpage2=$2&linkpage3=$3&idpub=$4 [L]
vitaminov-net вне форума  
Старый 31.01.2005, 03:32     # 5
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Незнаю, я проверил (до того как постить, и сейчас еще раз) - все работает как надо.
А вообще у тебя Mod_Rewrite включен, работает?
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.

Последний раз редактировалось Hubbitus; 31.01.2005 в 03:34.
Hubbitus вне форума  
Старый 31.01.2005, 10:50     # 6
vitaminov-net
Junior Member
 
Регистрация: 24.08.2003
Сообщения: 60

vitaminov-net Известность не заставит себя ждать
Hubbitus
Да извиняюсь, работает все но:
RewriteRule ^rus/(.*)?/(.*)?/(.*)?/(.*)?/?$ /pub.php?l=rus&linkpage=$1&linkpage2=$2&linkpage3=$3&idpub=$4 [L]

ссылки типа www.vbvb.com/rus/about/info/more/1/ - работают,
, а
www.vbvb.com/rus/about/info/ - уже нет (((

мне надо допустим чтоб
www.vbvb.com/rus/about/11/
и открывалась pub.php?l=rus&linkpage=about&linkpage2=linkpage3=&idpub=11


как это сделать?
vitaminov-net вне форума  
Старый 31.01.2005, 12:07     # 7
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
vitaminov-net:
мне надо допустим чтоб
www.vbvb.com/rus/about/11/
и открывалась pub.php?l=rus&linkpage=about&linkpage2=linkpage3=&idpub=11
А может тогда сделать параметр idpub вначале а не в конце? Просто я не знаю (если возможно вообще), как сослаться на последний найденный элемент, если не известно их количество заранее. Ну а сделать их необязательными несложно, просто наставь в нужных местах нужных квантификаторов. Тоесть количество элементов это не проблема, проблема пропустить отсутствующие и присвоить значение последнему. А если изменить порядок - то все сразу становится просто.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 31.01.2005, 12:24     # 8
vitaminov-net
Junior Member
 
Регистрация: 24.08.2003
Сообщения: 60

vitaminov-net Известность не заставит себя ждать
Hubbitus
если я правильно понял, то это:
www.vbvb.com/rus/1/more/about/ ?
в таком случае пропадает смысл ЧПУ..
vitaminov-net вне форума  
Старый 31.01.2005, 12:48     # 9
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Какой ЧПУ? И почему пропадет смысл? Ничего не понял.

Ну еще как вариант конечно можно передавать как у меня было, только все сделать необязательным, а в скрипте уже искать последний непустой параметр и принимать его за idpub. Такой путь мне кажется менее правильным, чем предложенный до этого.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 27.04.2005, 18:18     # 10
hempsmoke
::VIP::
IMHO Молодожен-2006
 
Аватар для hempsmoke
 
Регистрация: 14.06.2002
Адрес: Moscow
Сообщения: 2 921

hempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуру
Цитата:
vitaminov-net:
Да извиняюсь, работает все но:
RewriteRule ^rus/(.*)?/(.*)?/(.*)?/(.*)?/?$ /pub.php?l=rus&linkpage=$1&linkpage2=$2&linkpage3=$3&idpub=$4 [L]

ссылки типа www.vbvb.com/rus/about/info/more/1/ - работают,
, а
www.vbvb.com/rus/about/info/ - уже нет (((

мне надо допустим чтоб
www.vbvb.com/rus/about/11/
и открывалась pub.php?l=rus&linkpage=about&linkpage2=linkpage3=&idpub=11


как это сделать?
Hubbitus
плиз, приведи пример, а то самому теперь надо, чтобы
pub.php?l=rus в rus
pub.php?l=rus&linkpage=about в rus/about
pub.php?l=rus&linkpage=about&linkpage2=ours в rus/about/ours
и т.д. всего 4 таких переменных.

работает только, когда все 4 переменные присутсвуют
Спасибо.
hempsmoke вне форума  
Старый 27.04.2005, 20:32     # 11
hempsmoke
::VIP::
IMHO Молодожен-2006
 
Аватар для hempsmoke
 
Регистрация: 14.06.2002
Адрес: Moscow
Сообщения: 2 921

hempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуру
и ее непонятнО: как можно огородить, чтобы изменение записи было только на файле index.php, а на admin.php и view.php нет.
hempsmoke вне форума  
Старый 28.04.2005, 09:54     # 12
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
hempsmoke:
работает только, когда все 4 переменные присутсвуют :Frown:
Я же говорил, чтобы работало с меньшим количеством, нужно их сделать необязательными, например так:
RewriteRule ^rus/(.*)?(/.*)?(/.*)?(/.*)?/?$

Цитата:
hempsmoke:
и ее непонятнО: как можно огородить, чтобы изменение записи было только на файле index.php, а на admin.php и view.php нет.
Легко, просто исключи из обработки указанные файлы:
RewriteCond %{REQUEST_FILENAME} !^.*(/admin.php|/view.php)$
Ну или наоборот, включи только для конкретного(ых), например так:
RewriteCond %{REQUEST_FILENAME} ^.*(/index.php)$

Ну естественно RewriteCond должен стоять до RewriteRule.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 28.04.2005, 11:59     # 13
hempsmoke
::VIP::
IMHO Молодожен-2006
 
Аватар для hempsmoke
 
Регистрация: 14.06.2002
Адрес: Moscow
Сообщения: 2 921

hempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуру
Цитата:
Hubbitus:
Я же говорил, чтобы работало с меньшим количеством, нужно их сделать необязательными, например так:
RewriteRule ^rus/(.*)?(/.*)?(/.*)?(/.*)?/?$
неа, не срабатывает.
RewriteRule ^ cat/(.*)?(/.*)?(/.*)?(/.*)?/?$ index.php?cat=$1&subcat=$2&subcat2=$3&art=$4

Цитата:
Hubbitus:
Легко, просто исключи из обработки указанные файлы:
RewriteCond %{REQUEST_FILENAME} !^.*(/admin.php|/view.php)$
Ну или наоборот, включи только для конкретного(ых), например так:
RewriteCond %{REQUEST_FILENAME} ^.*(/index.php)$
спасибо!

Последний раз редактировалось hempsmoke; 28.04.2005 в 12:03.
hempsmoke вне форума  
Старый 28.04.2005, 12:56     # 14
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
hempsmoke:
неа, не срабатывает.
Точно, не срабатывает. Каюсь, не проверил, а так работает:
RewriteRule ^cat/([^/]*)?/?([^/]*)?/?([^/]*)?/?$ /index.php?cat=$1&subcat=$2&subcat2=$3&art=$4 [L]

Ну и скольку угодно можно прописать их так, хоть 100 параметров возможных и необязательных.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 28.04.2005, 14:45     # 15
hempsmoke
::VIP::
IMHO Молодожен-2006
 
Аватар для hempsmoke
 
Регистрация: 14.06.2002
Адрес: Moscow
Сообщения: 2 921

hempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуру
неа
hempsmoke вне форума  
Старый 28.04.2005, 15:13     # 16
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
hempsmoke:
неа :Frown:
Как это "неа", если это я уже проверил и все работало прекрасно!!!
Приведи что ты написал конкретно, и на чем тестируешь что не работает.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 28.04.2005, 16:49     # 17
hempsmoke
::VIP::
IMHO Молодожен-2006
 
Аватар для hempsmoke
 
Регистрация: 14.06.2002
Адрес: Moscow
Сообщения: 2 921

hempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуруhempsmoke Отец (мать) всех Гуру
вот это прописано и .htaccess
Код:
RewriteEngine on
Options +FollowSymlinks
RewriteCond %{REQUEST_FILENAME} !\.(swf)|(jpg)|(png)|(gif)|(pcx)$
RewriteCond %{REQUEST_FILENAME} !^.*(/admin.php|/view.php)$
RewriteRule ^cat/([^/]*)?/?([^/]*)?/?([^/]*)?/?$ /index.php?cat=$1&subcat=$2&subcat2=$3&art=$4 [L]
ни локально, ни на на двух других хостингах не работает, к сожалению.
Выдает 404.
hempsmoke вне форума  
Старый 28.04.2005, 19:53     # 18
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
hempsmoke:
ни локально, ни на на двух других хостингах не работает, к сожалению.
Выдает 404.
А в логах смотрел чего именно не находит, запрошенный файл или файл index.php? Может у тебя index.php лежит просто не в корне сайта, и тогда попробуй в последней строке /index.php на просто index.php заменить. И вообще приведи пару строк о 404 из логов.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 29.04.2005, 02:08     # 19
Sensey
Junior Member
 
Регистрация: 25.12.2002
Сообщения: 114

Sensey Нимб уже пробиваетсяSensey Нимб уже пробивается
Насчет проблемы что если не все параметры - то не работает....
Тут есть одна хистрость - заключается она в порядке расположения строчке в htaccess

Порядок должен быть такой :

строка с урлом шде параметров очень много
потом строка где параметров меньше
потом строка где параметров еще меньше
строка где параметров вообще нету

И тогд все будет пучком...
__________________
PHP+MySQL
Sensey вне форума  
Старый 29.04.2005, 06:12     # 20
PSyton
Junior Member
 
Аватар для PSyton
 
Регистрация: 19.04.2002
Адрес: Дом
Пол: Male
Сообщения: 187

PSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форуме
А не проще ли передавать в скрипт поный путь, а потом просто разбивать и анализировать его вручную?
.htaccess:
Код:
RewriteRule rus/(.*) pub.php?path=$1 [L]
а потом в pub.php разбить этот путь на составляющие
__________________
Дураки не динозавры - они не вымрут...
PSyton вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 20:00.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.