[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вопросик по Mod rewrite
ullltra
Суть вопроса в том что надо заменить ссылку типа:
http://site.ru/index.php?id=1&url=http://site.ru
на
http://site.ru/go/1/http://site.ru

Таким образом не получается:

RewriteEngine On
RewriteRule ^go/([^/]*)/([^/]*)$ /index.php?id=$1&url=$2 [L]

Так как параметр url имеет слеши, и поэтому не передаётся.
как правильно написать? помогите плз.



Спустя 6 минут, 22 секунды (4.08.2010 - 01:21) arvitaly написал(а):
RewriteRule ^go/([^/]*)/(.*)$ /index.php?id=$1&url=$2 [L]


Вопрос явно не для знатоков

И еще а для чего тебе вообще http://, по моему лишнее

Спустя 12 минут, 19 секунд (4.08.2010 - 01:34) ullltra написал(а):
Интересно если вопрос не для знатоков, то для кого?
Вот ты например в ветке для знатоков отписался, а сам не знаешь ответ на этот вопрос.

Вопрос задан точно и корректно, надо именно с http://
причем в url и без http:// могут быть слэши после домена

Спустя 40 минут, 11 секунд (4.08.2010 - 02:14) arvitaly написал(а):
Убери последний доллар

Спустя 7 часов, 44 минуты, 45 секунд (4.08.2010 - 09:58) ullltra написал(а):
RewriteRule ^go/([^/]*)/([^/]*) /index.php?id=$1&url=$2 [L]

Так?

тогда в параметр url передаётся только 'http:' то есть до первого слеша (

добавлено

Вроде почти решил проблему, после знака '^' не надо указывать слеш
но надо указать другой символ любой, которого не может быть в url

RewriteRule ^go/([^/]*)/([^[]*)$ /index.php?id=$1&url=$2 [L]

в таком случае в url передаётся адрес почти полностью типа:

http:/site.ru/sdffsdsdfsd/sdfds (только в начале один слэш)

Реально сделать, чтобы оба слэша передалось в параметр?
или прийдётся замену делать
http:/ на http:// ?

Спустя 1 час, 31 минута, 50 секунд (4.08.2010 - 11:30) netruxa написал(а):
RewriteEngine On
RewriteRule ^go\/([0-9]*)\/(.*)$ index.php?id=$1&url=$2

а в index.php заменять http:/ на http://

Спустя 5 часов, 59 минут, 20 секунд (4.08.2010 - 17:30) ullltra написал(а):
netruxa, большое спасибо smile.gif
такой способ более грамотный и всё работает.
заменить http:/ на http:// недолго
только почему он слэши склеивает?
даже если в адресе напишешь 3 и более слэшов, то выдаёт все равно один

Спустя 13 часов, 8 минут, 15 секунд (5.08.2010 - 06:38) arvitaly написал(а):
Вообще то в htaccess точка заменяет любой символ кроме как раз таки слеша
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.