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



 

Здравствуйте, гость (

| Вход | Регистрация )

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


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

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


не тестировал, попробуйте так:
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


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


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


Запрос: 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


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


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


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

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

- .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


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


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();
    }
?>


Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыSiteAnalyzer - бесплатная программа для аудита и анализа сайта
79 Chaser 74319 Сегодня, 1:02
автор: Chaser
Открытая тема (нет новых ответов) Требуется помощь по сайту на "ВордПресс"
Закрылся доступ в панель администратора
16 Tia2 2525 Вчера, 21:34
автор: Arsenwenger
Открытая тема (нет новых ответов) Посоветуйте массажер для спины и шеи
11 Boymaster 934 Вчера, 18:24
автор: Arsenwenger
Горячая тема (нет новых ответов) ⭕Антидетект браузер AdsPower для эффективной работы с мультиаккаунтами!
84 AdsPower 24599 Вчера, 16:35
автор: AdsPower
Горячая тема (нет новых ответов) Betatransfer.net - прием платежей для HIGH RISK проектов, интернет эквайринг и мерчант онлайн оплат
55 arendator 35109 Вчера, 2:12
автор: arendator


 



RSS Текстовая версия Сейчас: 26.4.2024, 2:35
Дизайн