X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Правила для mod_rewrite - требуется
Пуховой
Пуховой
Topic Starter сообщение 13.8.2010, 21:54; Ответить: Пуховой
Сообщение #1


Новичок
*******


Группа: Banned
Сообщений: 3674
Регистрация: 8.10.2007
Поблагодарили: 877 раз
Репутация:   251  


Задача такова. на сервере имеется файл:

index[too]php[vop]param[rav]10[and]param[rav]20

Нужно сделать так, чтобы при запросе вида:

index.php?param1=10&param2=20

выдавался этот файл.

Заранее спасибо за ответы.
-3
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
purple
purple
сообщение 13.8.2010, 22:31; Ответить: purple
Сообщение #2


Частый гость
**

Группа: User
Сообщений: 74
Регистрация: 6.8.2010
Поблагодарили: 12 раз
Репутация:   4  


не тестировал, попробуйте так:
RewriteEngine on
RewriteRule ^index[too]php[vop]param[rav]([0-9]+)[and]param[rav]([0-9]+)$  /index.php?param1=$1&param2=$2 [NC]


Сообщение отредактировал purple - 13.8.2010, 22:33
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Пуховой
Пуховой
Topic Starter сообщение 13.8.2010, 22:47; Ответить: Пуховой
Сообщение #3


Новичок
*******


Группа: Banned
Сообщений: 3674
Регистрация: 8.10.2007
Поблагодарили: 877 раз
Репутация:   251  


Такой момент... Правила должны одинаково хорошо работать для любого файла и количества параметров.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
purple
purple
сообщение 13.8.2010, 23:13; Ответить: purple
Сообщение #4


Частый гость
**

Группа: User
Сообщений: 74
Регистрация: 6.8.2010
Поблагодарили: 12 раз
Репутация:   4  


немного не понял сей момент. приведите, пожалуйста, побольше примеров в таком случае, и результаты, которые должны быть при рерайте.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Пуховой
Пуховой
Topic Starter сообщение 13.8.2010, 23:39; Ответить: Пуховой
Сообщение #5


Новичок
*******


Группа: Banned
Сообщений: 3674
Регистрация: 8.10.2007
Поблагодарили: 877 раз
Репутация:   251  


Запрос: http://www.domain.com/?boo=1
Должно отдать содержимое файла: http://www.domain.com/[vop]boo[rav]1

Запрос: http://www.domain.com/page?puhovoi=3
Должно отдать содержимое файла: http://www.domain.com/page[vop]puhovoi[rav]3

Запрос: http://www.domain.com/iphone/iphone.asp?model=3&big=43
Должно отдать содержимое файла: http://www.domain.com/iphone/iphone[too]asp[vop]model[rav]3[and]big[rav]43

Я у сервера прошу некий файл. Сервер смотрит адрес запроса, делает замену:
? -> [vop]
& -> [and]
. -> [too]
= -> [rav]
... и отдает нужный файл.

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

Как реализовать посредством .htaccess - не представляю, но других путей нет (или слишком заковыристые).
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
purple
purple
сообщение 14.8.2010, 0:33; Ответить: purple
Сообщение #6


Частый гость
**

Группа: User
Сообщений: 74
Регистрация: 6.8.2010
Поблагодарили: 12 раз
Репутация:   4  


отписал на serverfault'е, подожду ответа. как будет ответ - сразу скину вам личное сообщение с оным.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Пуховой
Пуховой
Topic Starter сообщение 14.8.2010, 2:10; Ответить: Пуховой
Сообщение #7


Новичок
*******


Группа: Banned
Сообщений: 3674
Регистрация: 8.10.2007
Поблагодарили: 877 раз
Репутация:   251  


Посоветовался со знакомым веб-программистом.

Из того, что он насоветовал, получилось:

- .htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ rewriterule.php

- .rewriterule.php

<?php
    echo (readfile ($_SERVER['DOCUMENT_ROOT'].str_replace ("?", "[vop]", str_replace (".", "[too]", str_replace ("&", "[and]", str_replace ("=", "[rav]", $_SERVER['REQUEST_URI']))))));
?>

Работает :)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
purple
purple
сообщение 14.8.2010, 2:21; Ответить: purple
Сообщение #8


Частый гость
**

Группа: User
Сообщений: 74
Регистрация: 6.8.2010
Поблагодарили: 12 раз
Репутация:   4  


а в условии разрешено было через скрипт делать? просто думал именно через htaccess надо
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Пуховой
Пуховой
Topic Starter сообщение 14.8.2010, 18:31; Ответить: Пуховой
Сообщение #9


Новичок
*******


Группа: Banned
Сообщений: 3674
Регистрация: 8.10.2007
Поблагодарили: 877 раз
Репутация:   251  


purple, если будет найдено решение через .htaccess - только в радость. На данный момент буду использовать скрипт, что не очень подходит под задачу, но работает.

Новая проблема.

Делаем запрос http://domain.com/booo.php?param=1 - все работает как нужно.
Делаем запрос http://domain.com/?param=1 - отправляет в корень домена на индексную страницу.


Нужно поправить так, чтобы запросы скрипту передавались только в том случае, если в них присутствует "?".

Актуально.

.

Все оказалось проще.

RewriteEngine On
RewriteRule ^(.*)$ rewriterule.php


<?php
    error_reporting (0);
    if (substr($_SERVER['REQUEST_URI'], -1, 1) == '/')
    {
        ob_start();
        include ($_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'].'index.html');
        echo ob_get_clean();            
    }
    elseif (strpos($_SERVER['REQUEST_URI'], '?') !== false || strpos($_SERVER['REQUEST_URI'], '&') !== false)
    {
        ob_start();
        include ($_SERVER['DOCUMENT_ROOT'].str_replace ("?", "[vop]", str_replace (".", "[too]", str_replace ("&", "[and]", str_replace ("=", "[rav]", $_SERVER['REQUEST_URI'])))));
        echo ob_get_clean();
    }
    else
    {
        ob_start();
        include ($_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI']);
        echo ob_get_clean();
    }
?>
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Бот для комплексной автоматической рассылки Whatsapp
Бот для комплексной автоматической рассылки Whatsapp
3 danger22 486 Сегодня, 8:30
автор: danger22
Горячая тема (нет новых ответов) ВНИМАНИЕ: Тема имеет прикрепленные файлыПишу тексты для всех и каждого. Цены не кусаются, качество не хромает.
Единственное правило: клиент всегда доволен.
114 Hellnar 50051 Сегодня, 5:25
автор: koroluk1990
Открытая тема (нет новых ответов) Открыть валютной карты для обменника
6 fair_exchange 390 Вчера, 19:38
автор: Mistic
Открытая тема (нет новых ответов) Нужен человек для поиска клиентов за процент от сделки
3 Evgos 538 15.12.2017, 22:34
автор: Yepperoni
Открытая тема (нет новых ответов) Вопрос по seo для интернет магазина
куда девать продвинутые товары, которые уже не выпускают
18 viktormerke 2809 15.12.2017, 15:18
автор: Smspva


 



RSS Текстовая версия Сейчас: 17.12.2017, 8:45
Дизайн