|
|
|
| привет всем !
Хостеры попросили обеспечить "дружественный формат урлов" - без ? и &. Как бы сделать, не ломая струтуру сайта и движка ?
пример
http://www.larush-net.tut.su/index.php?alb=ls1&b=foto&page=1&s=16&pic=2, как я понял, должен замениться на что-то подобное
http://www.larush-net.tut.su/galery/pic2.html
Спасибо ! | |
|
|
|
|
|
|
|
для: larush
(16.07.2008 в 17:45)
| | Замени в коде запросы GET на запросы POST | |
|
|
|
|
|
|
|
для: GeorgeIV
(16.07.2008 в 17:48)
| | так все реализовано на ссылках... < a href>... как сделать- не понимаю | |
|
|
|
|
|
|
|
для: larush
(16.07.2008 в 17:56)
| |
http://www.larush-net.tut.su/index.php?alb=ls1&b=foto&page=1&s=16&pic=2,
|
заменяем на
http://www.larush-net.tut.su/alb_ls_b_foto_page_1_s_16_pic_2.html
| а в .htaccess делает mod_rewrite
RewriteEngine on
# Указать корневую папку сайта
RewriteBase /
RewriteRule ^(.+)$ index.php [E=QUERY_STRING:$1,L]
|
т.е. адрес превращается в параметр, и дальше его парсить и формировать реальный урл | |
|
|
|
|
|
|
|
для: GeorgeIV
(16.07.2008 в 18:05)
| | что-то с пылу-жару не получилось..
1 как функции в htaccess узнают где знаки арвно а где ?&
2 можно-ли как-то обработать это дело в PHP скрипте
3 пожалуйста попобробнее - корневую указывать от localhost или с путем от диска ?
4 при установке данного файла- вознеикает ошибка про синтаксис htaccess и ошибку 500
вот сам текст
RewriteEngine on
RewriteBase z://home/localhost/www/larush/
RewriteRule ^(.+)$ index.php [E=QUERY_STRING:$1,L]
|
Спасибо | |
|
|
|
|
|
|
|
для: larush
(16.07.2008 в 18:20)
| | Смысл этого действа в том, что какая бы строка не была в урле, она всегда как параметр передается в index.php, а он уже разбирает на пары параметров.
Соответственно все ссылки в коде должны формироваться в таком виде:
вместо nechto?a=b&c=5 должно быть nechto__a_b_c_5.html
RewriteBase - это имя сервера его лучше оставить / | |
|
|
|
|
|
|
|
для: GeorgeIV
(16.07.2008 в 18:29)
| | http://localhost/larush/index.php__b_foto_page_1_s_16_pic_2.html
вот что отразилось в адресной строке... хотелось бы
http://localhost/larush/index.php?b=foto&page=1&s=16&pic=2.html | |
|
|
|
|
|
|
|
для: larush
(16.07.2008 в 18:44)
| | я так понял, тебя попросили убратьпараметры из адресной строки, я предложил вариант. | |
|
|
|
|
|
|
|
для: GeorgeIV
(16.07.2008 в 18:50)
| | да, но вот и пыnаюсь это сделать ..
допер до чего - при включенном htaccess загружается index.php, я получаю строку и разбираю, здесь уже что-то. Но при этом, перестали отражаться рисунки, хотя src в случае с включенным и отключенным одинаков. Такое ощущение, что "смещается точка отсчета"... Если фотка лежит в корне сервера- то открывается, если же в директории- то нет, хотя ссылками игрался долго...
Что делать ? | |
|
|
|
|
|
|
|
для: larush
(16.07.2008 в 20:07)
| |
RewriteRule ^img/(.+)$ img/$1 [E=REDIRECT_DONE:true]
|
RewriteCond %{ENV:REDIRECT_DONE} !^true$
RewriteCond %{ENV:REDIRECT_SITE_REQUEST_DOCUMENT} ^$
|
Добавть эти строчки в .htaccess, первую после RewriteBase /
вторую перед
RewriteRule ^(.+)$ index.php [E=QUERY_STRING:$1,L]
|
При этом предполагается, что картинки в папке img.
смысо этого в том, что картинки не будут преобразовываться и будут отдаваться как есть, так же можно добавить еще условия, для которых не требуется преобразование | |
|
|
|
|
|
|
|
для: GeorgeIV
(17.07.2008 в 09:54)
| | не кактит.... вот htaccess
RewriteEngine on
RewriteBase /larush/
RewriteRule ^img/(.+)$ larush/$1 [E=REDIRECT_DONE:true]
RewriteCond %{ENV:REDIRECT_DONE} !^true$
RewriteCond %{ENV:REDIRECT_SITE_REQUEST_DOCUMENT} ^$
RewriteRule ^(.+)$ index.php [E=QUERY_STRING:$1,L]
"автоматом" из преобразованной строки не смог вытянуть параметры, пришлось кодировать "под себя" я заменяю = через Z, а & через N, получаю то что надо и разбираю. вот пример
http://localhost/larush/__bZfotoNsZ16NalbZls1.html
|
ссылки работают, все красиво, только изображения так и не появилсь. У меня след. структура:
DocumentRoott
-- larush
- dir1
-dir11
-files
-small
-galery1
-big
-galery1
|
в galery1 лежат превтюшки и большого размера изображения
Пробовал класть тестовое изображение и в корень и root, ничего не отображается. Привиди пожалуйста "нормальный" файл htaccess
Особенность в том что изображения лежат не в общей директории, доступ нужен к папке files | |
|
|
|
|
|
|
|
для: larush
(18.07.2008 в 10:24)
| |
RewriteRule ^img/(.+)$ larush/$1 [E=REDIRECT_DONE:true]
|
это неправильно, если ты что то нехочешь менять так иоставляешь
RewriteRule ^dir1/dir11/files/small/galery1/(.+)$ dir1/dir11/files/small/galery1/$1 [E=REDIRECT_DONE:true]
|
| |
|
|
|
|
|
|
|
для: GeorgeIV
(18.07.2008 в 10:31)
| | спасибо !
на локальном денвере все отладил, а при потытке разметить на хосте- клик по любому линку вызывает ошибку 500... Это мне права какие-то не дали или я что-то не досмотрел ? index.php открывается, а вот остальное.... | |
|
|
|
|
|
|
|
для: larush
(21.07.2008 в 18:15)
| | 1. Проверииь пути
2. Поинтересоваться у хостера, есть ли возможность использовать .htaccess и mod_rewrite | |
|
|
|
|
|
|
|
для: GeorgeIV
(21.07.2008 в 18:21)
| | спасибо !!!
узнал у хостеров пути от Document Root, вставил и свершилось чудо ! Преклоняюсь перед мудрыми ! :-) | |
|
|
|
|
|
|
|
для: larush
(16.07.2008 в 18:44)
| | >> Хостеры попросили обеспечить "дружественный формат урлов" - без ? и &. ...
>> ... хотелось бы http://localhost/larush/index.php?b=foto&page=1&s=16&pic=2.html
Так тут же есть "&" | |
|
|
|