Изменение ссылки (покороче)

samb100

Новичок
Изменение ссылки (покороче)

Есть ссылка вида site.ru/go.php?url=http://yandex.ru (редирект через header() )
Хочется аналогичную ссылку, но покороче и покрасивее. что-нибудь типа: site.ru/go?http://yandex.ru

покопал mod_rewrite - не получается.
 

dimagolov

Новичок
не, ну как-то ему скрипт вызвать нужно, так что mod_rewrite причем
 

Духовность™

Продвинутый новичок
для создания виртуальных путей есть модуль mod_rewrite. не надо для создания виртуальных путей плодить директории - это плохая практика. я видел сайт, где с помощью директорий имитировались виртуальные пути вложенностью до 4 уровней - это дурдом на выезде. нужно с самого начала делать всё правильно, тем более задача автора решается одной примитивной строчкой в htaccess.
 

Xeon303

Новичок
triumvirat
где же он виртуальный? Вполне реальный: /go/index.php

Я не спорю, что на mod_rewrite это не сложно сделать, но ведь ты сказал что _кривой_, подчеркиваю. В чем эта кривость, мне не совсем ясно.
 

Духовность™

Продвинутый новичок
но ведь ты сказал что _кривой_, подчеркиваю
ок. беру свои слова обратно, в контексте задачи - это не так. просто лично мне куда более удобно и привычно создавать URL с помощью исключительно виртуальных путей, абстрагируясь от реальных.
 

Фанат

oncle terrible
Команда форума
сеошный реферальный мусор из темы почищен, а по теме автору НАДО, действительно учить не самое красивое, с точки зрения местных гуру решение, а основы веб-программирования.
квери стринг, как было сказано, и скрытое обращение к индексу папки, как было удалено

-~{}~ 12.01.10 13:48:

это те самые кирпичики, из которых строится понимание работы веба. и то, что автор их не знает, и, следовательно, должен узнать - гораздо важнее решения отдельной практической задачи.
 

samb100

Новичок
Я делал как обычно: RewriteRule ^go/(.*)$ go.php?url=$1
но не работает.
Помогите.

ЗЫ. не совсем понял, как через $_SERVER['QUERY_STRING']

В элемент $_SERVER['QUERY_STRING'] заносятся параметры, переданные скрипту
 

fixxxer

К.О.
Партнер клуба
>>ЗЫ. не совсем понял, как через $_SERVER['QUERY_STRING']

1) /go/?чтоугодно по умолчанию, безо всяких реврайтов, обработается go/index.php
2) в нем ты можешь прочитать $_SERVER['QUERY_STRING'] и отдать header('Location: ...')

а с реврайтом - ну может следующими перебивается, может еще что. а тебе не все равно ли, лежит код в /go.php или в /go/index.php ?
 

samb100

Новичок
>>> а тебе не все равно ли, лежит код в /go.php или в /go/index.php ? <<<

папок уже много в корне сайта, лишняя папочка будет лишней ;)...
 

Фанат

oncle terrible
Команда форума
ну так вот рерайт и нужен, чтобы лишние папки убрать.
а не чтобы один никому не нужный редирект украшать.

В элемент $_SERVER['QUERY_STRING'] заносятся параметры, переданные скрипту
и что здесь непонятного?
если тебе и нужен ПАРАМЕТР, КОТОРЫЙ ПЕРЕДАЛИ СКРИПТУ?
 
Сверху