- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Задача такова. На сервере имеется файл:
index[too]php[vop]param[rav]10[and]param[rav]20
Нужно сделать так, чтобы при запросе вида:
index.php?param1=10¶m2=20
выдавался этот файл.
Заранее спасибо за ответы.
RewriteEngine On
RewriteCond %{QUERY_STRING} ^param1=([0-9]+)¶m2=([0-9]+)$
RewriteRule ^index.php$ index[too]php[vop]param[rav]%1[and]param[rav]%2 [L]
:) ?
Посоветовался со знакомым веб-программистом. Из того, что он насоветовал, получилось:
- .htaccess
- .rewriterule.php
Подобная схема работает только если знак вопроса первым в запросе не стоит.
Делаем запрос http://domain.com/booo.php?param=1 - все работает, выдает файл booo[too]param[rav]1.
Делаем запрос http://domain.com/?param=1 - отправляет в корень домена на индексную страницу.
Нужно поправить так, чтобы запросы скрипту передавались только в том случае, если в них присутствует "?".
Пуховой добавил 14.08.2010 в 17:02
Актуально.
Без имени файла — это частный случай, его нужно обрабатывать отдельно.
Вообще, вы задачу поточней опишите, потому что условиям, указанным в вашем первом посте, соответствует моё решение :)
Выделите, что именно может изменяться в запросе, и куда это подставлять (с несколькими примерами).
Наверняка всё можно сделать лишь силами mod_rewrite.
Запрос: http://www.domain.com/
Должно отдать содержимое файла: http://www.domain.com/index.html (или php)
Запрос: 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 так:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . rewriterule.php
RewriteCond %{QUERY_STRING} !^$
RewriteRule ^$ rewriterule.php
В rewriterule.php так:
<?
$search=array('?','&','.','=');
$replace=array('[vop]','[and]','[too]','[rav]');
// ... и не забываем ещё отдать тут нужный content-type
readfile($_SERVER['DOCUMENT_ROOT'].str_replace($search,$replace,$_SERVER['REQUEST_URI']));
?>
Зачем вам такая коряга, спрашивать даже не буду :D