Поиск:

Ответ в темуСоздание новой темы Создание опроса
> mod_rewrite, Не получается =( 
:(
    Опции темы
APro
Дата 1.9.2008, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 328
Регистрация: 5.12.2006

Репутация: нет
Всего: 1



Вобщем прочитал я несколько статей и ничего не выходит. Вы не могли бы написать пример (так я лучше пойму). Вот сайт:

http://localhost/index.php?module=xxx 

Как мне сделать ссылку типа:

http://localhost/module/xxx

???

Заранее спасибо!



--------------------
Никогда не спорь с дураком, другие могут не заметить между вами разницы.
Чем реже открываешь рот, тем меньше слышишь глупостей.
PM MAIL WWW ICQ   Вверх
skyboy
Дата 1.9.2008, 12:23 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 4
Всего: 260



на этом форуме статью читал?
PM MAIL   Вверх
APro
Дата 1.9.2008, 13:15 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 328
Регистрация: 5.12.2006

Репутация: нет
Всего: 1



именно на ней я и закончил. Это есдинственная статья, для таких, не совсем опытных, как я. Но даже в не я ничего не понял. Кто-нибудь может реально помочь? На практике? А не посылать на другие темы и т.д. (всё равно я их читал, если прочитаю ещё раз, ума не прибавиться). Я прочитал, но не до конца понял. А чтобы понять, мне нужен пример для моего случая. Если кто может --- помогите! plz 


--------------------
Никогда не спорь с дураком, другие могут не заметить между вами разницы.
Чем реже открываешь рот, тем меньше слышишь глупостей.
PM MAIL WWW ICQ   Вверх
Nigel
Дата 1.9.2008, 18:08 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


познаю мир
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 20.11.2007

Репутация: 7
Всего: 19



Если ххх - это слово какое-то, к примеру, то будет
Код

RewriteRule ^module/(\w+)$    index.php?module=$1

Все же прочитайте статью еще раз, если на таких мелочах спотыкаетесь. Не поможет, берите другую статью
PM MAIL   Вверх
Gold Dragon
Дата 2.9.2008, 10:19 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



кстати, прочитал тоже очень много на форуме, но так и не понял  smile НО... вот что я сделал у себя и меня это устраивает полностью сейчас. 

надеюсь по теме вопроса.. в общем так....

сделал файл
.htaccess
Код

RewriteEngine on
Options +FollowSymlinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA] 
  

потом с основном файле, а именно index.php делаю
Код

// получаю адрес 
$url = explode ( '/', $_SERVER ['REQUEST_URI'] );

// проверяю есть ли у меня какая-либо ссылка типа
// www.site.ru/news
// www.site.ru/searh
$pages = (isset ( $url [1] )) ? $url [1] : '';
// в $url[1] как раз содержит news или search
// это получается что и, например, www.site.ru/index.php?pages=news

// потом я перехожу туда куда мне нужно
switch ( $pages) {
    //*********************************************************************
    case 'search' : // делаем что-то если www.site.ru/search

        $content = 'Поиск';
    break;
    //*********************************************************************
    case 'news' : // делаем что-то если www.site.ru/news
        $content = 'Новости';
    break;
    //*********************************************************************
    case 'qqq' : // делаем что-то если www.site.ru/qqq
                        // тут получаем ещё один параметр, например
                        // www.site.ru/qqq/12
        $url2 = (isset ( $url [2] )) ? $url [2]  : '';
        if ($url2 == 11) {
            $content = 'qqq=11';
                        }elseif($url2 == 22){
                                    $content = 'qqq=22'; 
        } else {
            $content = 'qqq false';
        }
    break;
    //*********************************************************************
    default : // главная страница или любая если адрес не правильный
        $content = 'Главная';
}

echo $content;


теперь на сайте нужно определиться с параметрами и правильно писать адреса
вот например есть
Код

www.site.ru/index.php?pages=news&day=23&id=123

и получается что нужно писать адрес
Код

www.site.ru/news/23/123

и соответственно будет
$url[1] = news
$url[2] = 23
$url[3] = 123

может конечно это не самый оптимальный и лучший вариант, но мне он понравился smile



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
-=Ustas=-
Дата 2.9.2008, 11:08 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



Цитата(Gold Dragon @  2.9.2008,  10:19 Найти цитируемый пост)
может конечно это не самый оптимальный и лучший вариант, но мне он понравился smile


Ну почему же, по крайней мере это гораздо оптимальнее (в плане громоздкости и модификации), чем если бы выстраивать длинные списки жестких урлов непосредственно в .htaccess.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
stalkerok
Дата 2.9.2008, 19:39 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 28.12.2007

Репутация: нет
Всего: нет



Прочитал ФАК, пользовался поиском но так и не нашёл как с помощью .htaccess сделать ЧПУ и не перенаправить изображения

.htaccess
Код

Options +FollowSymLinks

Options -Indexes

RewriteEngine on

RewriteCond %{REQUEST_URI} !(styles|js|images)\/

RewriteRule ^([^/]*)/([^/]*)/*$ /index.php?page=$1&id=$2
 
при запросе вида 
Код
http://localhost/news/
 
адрес изображения становится 
Код
http://localhost/news/images/img.gif
 
а должен быть
Код
http://localhost/images/img.gif
 

почему так ведь стоит
Код
RewriteCond %{REQUEST_URI} !(styles|js|images)\/
 ?

P.S.также не получается вариант предложенный выше, изображения всё равно перенаправляются

заранее спасибо!
PM MAIL   Вверх
-=Ustas=-
Дата 2.9.2008, 20:00 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



Цитата(stalkerok @  2.9.2008,  19:39 Найти цитируемый пост)
P.S.также не получается вариант предложенный выше, изображения всё равно перенаправляются

Вставь в мету
Код

<BASE href="http://domain.ru" />



--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Gold Dragon
Дата 3.9.2008, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



у меня в конфигурации есть адрес сайта и физический адрес и везде по сайты используются только эти переменные.. Такой проблемы не было.. 

Но ещё я делаю запрет прямого вызоно всего что возможно кроме index.php smile


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
skyboy
Дата 3.9.2008, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 4
Всего: 260



т.е. ты хочешь, чтоб по запросу "/images/img.gif" на странице "http://localhost/news/" получать картинку "http://localhost/images/img.gif"?
Цитата(-=Ustas=- @  2.9.2008,  19:00 Найти цитируемый пост)
Вставь в мету
<BASE href="http://domain.ru" />

это чтоб не работали ссылки с относительным URI?
PM MAIL   Вверх
-=Ustas=-
Дата 3.9.2008, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



Цитата(skyboy @  3.9.2008,  13:18 Найти цитируемый пост)
это чтоб не работали ссылки с относительным URI? 

Вообще-то в верстке правильнее делать ссылки вида /images/img.gif.

Добавлено через 27 секунд
ИМХО разумеется.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
skyboy
Дата 4.9.2008, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 4
Всего: 260



Цитата(Akella @  3.9.2008,  22:00 Найти цитируемый пост)
НЕ работают

В СМЫСЛЕ - "не работают"? не происхходит преобразование адреса и происходит переход на другой url(какой?)? возникает ошибка(какая?)? в rewrite.log отображено, что производятся не те преобразования? что?!
PM MAIL   Вверх
Akella
Дата 4.9.2008, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: нет
Всего: 329



Цитата(skyboy @  4.9.2008,  00:44 Найти цитируемый пост)
В СМЫСЛЕ - "не работают"? 


Цитата(Akella @  3.9.2008,  23:00 Найти цитируемый пост)
Not Found

The requested URL /kvx2007.html was not found on this server.
Apache Server at www.ra-codecraft.com.ua Port 80

вот так не работают

Добавлено через 9 минут и 26 секунд
Цитата(skyboy @  4.9.2008,  00:44 Найти цитируемый пост)
в rewrite.log отображено, что производятся не те преобразования?

у меня разве есть к нему доступ?
PM MAIL   Вверх
-=Ustas=-
Дата 4.9.2008, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



А попробуй создать там простенький .htaccess, например:
Код

Options -Indexes
Options +FollowSymlinks

RewriteEngine on

RewriteRule ^(.*)$ index.php?param=$1 [L,QSA]


ну и index.php, в котором выведи _GET['param']. Какие результаты будут?


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Akella
Дата 4.9.2008, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: нет
Всего: 329



Цитата(-=Ustas=- @  4.9.2008,  10:23 Найти цитируемый пост)
ну и index.php, в котором выведи _GET['param']. Какие результаты будут? 

можно поточнее?  smile

Добавлено через 1 минуту и 19 секунд
сайт рабочий, я не смогу (сейчас по крайней мере) заменять содержимое index.php

Добавлено через 5 минут и 20 секунд
Потихоньку читаю тему в FAQ про mod_rewrite, хотя тот мой .htaccess, так сказать, стандартный, из дистриба джумлы.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема »


 




[ Время генерации скрипта: 0.0590 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.