|
|
|
| Здравствуйте!
На каком-то сайте встречал онлайн библиотеку с адресами вида
http://bibla.site.ru/10/2000/5/
суть этого URL в следующем - 10й раздел, 2000 символов на страницу, 5я страница, т.е. видимо этот адрес скрыто перенаправляет на что то вроде
http://bibla.site.ru/index.php?razdel=10&on_page=2000&stranica=5
Хотелось бы это осуществить у себя, буду благодарен наглядному примерчику :)
Но это не все, как есть вопрос весьма не сложный :)
Дело в том, что в моем скрипте в разных случаях предполагается передача разного количества переменных, т.е. адрес http://site.ru/5/password/enter/ нужно скрыто обратить в http://site.ru/?id=5&pass=password&mode=enter,
а http://site.ru/5/password/user/search/ - на http://site.ru/?id=5&pass=password&username=user&mode=search
Возможно ли такое?
Огромное спасибо за любую информацию по теме =) | |
|
|
|
|
|
|
|
для: wUPS
(09.02.2007 в 16:40)
| | Это осуществляется при помощи директив модуля mod_rewrite в конфигурационном файле .htaccess. Параметры password, enter, user и search у вас статичные или могут применять любую форму?
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^([0-9]+)/password/enter /index.php?id=$1&pass=password&mode=enter [L]
RewriteRule ^([0-9]+)/password/user/search /index.php?id=$1&pass=password&username=user&mode=search [L]
|
| |
|
|
|
|
|
|
|
для: cheops
(10.02.2007 в 03:10)
| | Параметры динамичны.
Сам представляю, что при таком раскладе задача пожалей становится неразрешима в принципе)
В таком случае переформирую вопрос так:
Из URL вида http://site.ru/var1/var2/var3/.../varN/ скрыто преобразовывать в http://site.ru/?var1/var2/.../varN/, все значения пожалуй легче будет парсить в самом скрипте) | |
|
|
|
|
|
|
|
для: wUPS
(10.02.2007 в 22:35)
| | А какие символы могут принимать параметры var1, var2 и сколько их всего может быть? | |
|
|
|
|
|
|
|
для: cheops
(11.02.2007 в 12:35)
| | Это может быть до 32 символов 0-9A-z и некоторые спецсимволы (тире, подчеркивание, знак "равно" и т.д. - вообщем все, что допустимо использовать в URL) | |
|
|
|
|
|
|
|
для: wUPS
(11.02.2007 в 13:24)
| | Тогда можно поступить следующим образом
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^([0-9]+)/([0-9A-z-_\.=]+)/([0-9A-z-_\.=]+) /index.php?id=$1&pass=$2&mode=$3 [L]
RewriteRule ^([0-9]+)/([0-9A-z-_\.=]+)/([0-9A-z-_\.=]+)/([0-9A-z-_\.=]+) /index.php?id=$1&pass=$2&username=$3&mode=$4 [L]
|
| |
|
|
|
|
|
|
|
для: cheops
(11.02.2007 в 21:22)
| | Благодарен)
Обидно только, что для каждого варианта (а их не мало) будет необходимо прописывать отдельную строчку)
cheops, (оффтоп) написали бы статейку по mod_rewrite - думаю многие были бы признательны - писать у вас отлично получается) | |
|
|
|
|
|
|
|
для: wUPS
(12.02.2007 в 20:11)
| | /*Записывая в план*/ Хорошо, действительно надо, только вряд ли статья появится быстро, так как перед ней в плане ещё несколько :))) | |
|
|
|
|
|
|
|
для: cheops
(12.02.2007 в 20:36)
| | Окей, я уже начал ждать)))
Созрело дополнение моего вопроса, вот код:
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^([0-9]+)/([0-9A-z]+)/([0-9A-z]+)([0-9A-z=&]*) /index.php?id=$1&sess=$2&mode=$3&$4 [L]
|
Предполагаю, что посетитель перешедший на
http://site.ru/555/zsert4tw4s/script?a=a1&b=b1..
попадет на http://site.ru/index.php?id=555&sess=zsert4tw4s&mode=script&a=a1&b=b1,
но почему то QUERY_STRING никак не хочет попасть в мой URL :(
Получается аналогично
Options +FollowSymlinks
RewriteBase /
RewriteRule ^([0-9]+)/([0-9A-z]+)/([0-9A-z]+) /index.php?id=$1&sess=$2&mode=$3 [L]
|
тоесть все, что посетитель пишет в GET-запрос, должно попросту дописываться в конец адреса, ан не хочет :(
Подскажите, пожалуйста, что исправить/дополнить здесь необходимо? | |
|
|
|
|
|
|
|
для: wUPS
(14.02.2007 в 21:18)
| | Из URL http://site.ru/555/zsert4tw4s/script?a=a1&b=b1.. строка ?a=a1&b=b1.. отбрасывается - так mod_rewrite устроен, получать их следует при помощи серверной переменной %{QUERY_STRING} | |
|
|
|