The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Подскажите как с помощью RewriteEngine подменить запрос поль..."
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"Подскажите как с помощью RewriteEngine подменить запрос поль..."
Сообщение от AlexPS emailИскать по авторуВ закладки on 06-Мрт-04, 12:44  (MSK)
Подскажите как с помощью RewriteEngine подменить запрос пользователя.

Запрос выглядит так:    http://мой_сайт/main.php
Надо подменить на:      http://мой_сайт/index.php?go=main

Основываясь на примерах пробовал сделать следующее:

RewriteEngine  on
RewriteBase    /
RewriteRule    ^index.php?go=main$  main.php [R]

Никакого эфекта. Наверное чего-то недопонял.
Помогите пожалуйста решить задачу.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Подскажите как с помощью RewriteEngine подменить запрос поль..."
Сообщение от dev emailИскать по авторуВ закладки on 06-Мрт-04, 22:21  (MSK)
Только наоборот:

RewriteRule    main.php    ^index.php?go=main$   [R]

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Подскажите как с помощью RewriteEngine подменить запрос поль..."
Сообщение от AlexPS emailИскать по авторуВ закладки on 07-Мрт-04, 11:50  (MSK)
>Только наоборот:
>
>RewriteRule    main.php    ^index.php?go=main$   [R]
>

Спасибо, попробую позже, а пока решил задачу так:

Redirect permanent /main.php    http://мой_сайт/index.php?go=main

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Подскажите как с помощью RewriteEngine подменить запрос поль..."
Сообщение от solotony emailИскать по авторуВ закладки on 09-Мрт-04, 14:40  (MSK)
Это внешний редирект. Только тебе он здесь не нужен, и лучше использовать локальный, если такая возможность есть.

А по сути - RTFM. http://httpd.apache.org/

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Подскажите как с помощью RewriteEngine подменить запрос поль..."
Сообщение от catoffsky emailИскать по авторуВ закладки on 08-Май-04, 03:22  (MSK)
hello all
... вот по поводу внутреннего редиректа :

- моя задача : передать значение 'request' из http://myhost/request в среду php-переменных и открыть оперирующий ими файл.

-делаю так : RewriteRule ^/(.*) /alias/index.php?$1

по идее это должно работать (получаю QUERY_STRING и работаю дальше с ней на уровне php), но возникает проблема когда mod_rewrite
начинает перенаправлять такие вещи как style.css , picture.gif , etc...(файлы привязанные к index.php - элементы дизайна и декорации)
то есть выходит так : $1=style.css , $1=picture.gif , ...
в итоге разумеется ничего не работает как надо


подскажите плз как быть в такой ситуации


  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Подскажите как с помощью RewriteEngine подменить запрос поль..."
Сообщение от dev emailИскать по авторуВ закладки(??) on 08-Май-04, 21:29  (MSK)
>-делаю так : RewriteRule ^/(.*) /alias/index.php?$1

ну так указывай точнее, что ты хочешь переписать:

RewriteRule ^/(.*).html$ /alias/index.php?$1.html

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Подскажите как с помощью RewriteEngine подменить запрос поль..."
Сообщение от catoffsky emailИскать по авторуВ закладки on 08-Май-04, 22:45  (MSK)
не - дело в том что мне нужно изъять всё что нахотиться после
http://myhost/  и загнать в переменную...

такой  вариант : RewriteRule ^/(.*).html$ /alias/index.php?$1.html
не подходит так как QUERY_STRING может и не содержать '.html'
(она вообще произвольная - поэтому и '(.*)') - то есть если идёт запрос :
http://myhost/kill_tha_chiken (не содержит '.html'=> pass through...)

мне бы хотелось при этом (при любом запросе!!!)подключать файл(фильтр-сортировщик переменных), который в начале работает с $_SERVER['QUERY_STRING'] == 'kill_tha_chiken' и далле выводит контент в зависимости от привязки оной.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Подскажите как с помощью RewriteEngine подменить запрос поль..."
Сообщение от dev emailИскать по авторуВ закладки(??) on 09-Май-04, 12:46  (MSK)
>мне бы хотелось при этом (при любом запросе!!!)подключать файл(фильтр-сортировщик переменных), который в
>начале работает с $_SERVER['QUERY_STRING'] == 'kill_tha_chiken' и далле выводит контент в
>зависимости от привязки оной.

Ну так у тебя так и получилось в самом начале :)
Кто ж мешает обрабатывать запросы на style.css?
Ты сформулируй сначала, какие запросы ты хочешь переписывать, а какие нет.
Например: переписывать все, кроме /files/*.gif и /files/*.css. Тогда и пиши соотв. условие.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Подскажите как с помощью RewriteEngine подменить запрос поль..."
Сообщение от catoffsky emailИскать по авторуВ закладки on 09-Май-04, 16:35  (MSK)
:-) итак - попытаюсь подробнее обрисовать ситуацию(сорри если повторюсь) :

хотелось бы сделать так - чтобы мой сервер прежде чем выдавать что-либо (любой URI) пропускал запрос через index.php
(ну типа index.php?id=ident&op=determ&...&last=etc), но чтобы не было возможности зайти на реальную страничку в обход этого index.php - то есть:
http://myhost/files/news/shutdown.html (если она есть - она откроется), и чтобы всё это дело имело товарный вид (ЧПУ).

поэтому ,я думаю, надо все запросы отлавливать и работать с ними на уровне переменных(чистить их и распределять как пожелается) , следовательно вариант RewriteRule ^/(.*)  /alias/index.php?$1 кажется самым удачным, но
если делать так то под это правило попадает (обрабатывается) не только строка из браузера (когда я это понял - был неприятно удивлён :-) ), но и все пути (внутреннии привязки) : style.css -> index.php?id=style.css...

можно конечно ограничить применение правила через RewriteCond :
RewriteCond %{REQUEST_URI} !\.(.*)$ (я все предпочитаю в общем случае:-) )- пропускать все запросы имеющие на конце файловое расширение (это срабатывает) -но меня не устраивает то -что
тогда ничего не помешает этому иметь место http://myhost/news/shutdown.htm

и ешё - запрос вида /abrakadabra/news будет менять все пути файлов привязок - style.css -> - /abrakadabra/style.css (они уже не обрабатываются через index.php - но и не работают) - вот ...

мб посоветуете как сделать такую штуку... если напишите скриптик буду очень рад (я парюсь с этим уже 3-ий день - статей не так уж много на ету тему - а без разрешения этой проблемы работа дальше не двигается)


  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Подскажите как с помощью RewriteEngine подменить запрос поль..."
Сообщение от solotony emailИскать по авторуВ закладки on 09-Май-04, 17:18  (MSK)
1. Можно условие RewriteCond написать обратное, перечислив типы, которые не обрабатываются.
2. Можно этим скриптом тупо выдавать содержимое необрабатываемых файлов.
3. Можно устнаовить output фильтр (по типу SSI) на нужные mimetypes.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "Подскажите как с помощью RewriteEngine подменить запрос поль..."
Сообщение от catoffsky emailИскать по авторуВ закладки on 09-Май-04, 17:50  (MSK)
>1. Можно условие RewriteCond написать обратное, перечислив типы, которые не обрабатываются.
>2. Можно этим скриптом тупо выдавать содержимое необрабатываемых файлов.
>3. Можно устнаовить output фильтр (по типу SSI) на нужные mimetypes.


1. Думаю что нельзя - так как мне для обработки требуется та строка , которая придёт GETом из браузера (а ето всё что угодно - и всё должно быть обработано должным образом) - поэтому необрабатываемых типов быть не должно . Вроде логично. В идеале хотелось бы как-нибудь заграничить первоначальный запрос (URI) и те URI , которые приходят не с клиентской стороны ...что бы пропустить второе.(но проблема с подстановкой путей вида : abrakadabra/foo/stuff к внутренним связям ,скорее, только этим не решится)

2. Вот это точно неприемлимо

3. А здесь уже ближе к истине ...если можно - то конкретизируйте этот вариант... я веб-программист только начинающий и хотелось бы сразу убедиться в состоятельности/несостоятельности этого варианта
в php есть очень удобная штука : auto_prepend_file... но увы такие файлы(на сколько мне изветно)инклюдятся только к php-файлам - а метить все файлы как php очевидно не рационально...

прошу прощения за свои пробелы в познании предмета (которые мб тут очень заметны) но увы всему и сразу научиться нельзя - вот и прошу помощи аудитории :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "Подскажите как с помощью RewriteEngine подменить запрос поль..."
Сообщение от solotony emailИскать по авторуВ закладки on 09-Май-04, 18:02  (MSK)
>>1. Можно условие RewriteCond написать обратное, перечислив типы, которые не обрабатываются.
>>2. Можно этим скриптом тупо выдавать содержимое необрабатываемых файлов.
>>3. Можно устнаовить output фильтр (по типу SSI) на нужные mimetypes.
>
>
>1. Думаю что нельзя - так как мне для обработки требуется та
>строка , которая придёт GETом из браузера (а ето всё что
>угодно - и всё должно быть обработано должным образом) - поэтому
>необрабатываемых типов быть не должно . Вроде логично. В идеале хотелось
>бы как-нибудь заграничить первоначальный запрос (URI) и те URI , которые
>приходят не с клиентской стороны ...что бы пропустить второе.(но проблема с
>подстановкой путей вида : abrakadabra/foo/stuff к внутренним связям ,скорее, только этим
>не решится)
>
>2. Вот это точно неприемлимо
>
>3. А здесь уже ближе к истине ...если можно - то конкретизируйте
>этот вариант... я веб-программист только начинающий и хотелось бы сразу убедиться
>в состоятельности/несостоятельности этого варианта
>в php есть очень удобная штука : auto_prepend_file... но увы такие файлы(на
>сколько мне изветно)инклюдятся только к php-файлам - а метить все файлы
>как php очевидно не рационально...
>
>прошу прощения за свои пробелы в познании предмета (которые мб тут очень
>заметны) но увы всему и сразу научиться нельзя - вот и
>прошу помощи аудитории :)

http://httpd.apache.org/
AddOutputFilter
ExtFilterDefine

  Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "Подскажите как с помощью RewriteEngine подменить запрос поль..."
Сообщение от catoffsky emailИскать по авторуВ закладки on 25-Май-04, 02:02  (MSK)
>http://httpd.apache.org/
>AddOutputFilter
>ExtFilterDefine

спасибо - но оказалось - это немного не то что мне нужно : во-первых апач.2 не хочу пока ставить ,а во-вторых ... и во-вторых что-то было - не помню что именно :) так как всё-таки стал делать через mod_rewrite...

и вот значит вышло так :

<base href="http://my_host/">
+
httpd.conf:
RewriteCond %{REQUEST_URI} !\.(swf)|(jpg)|(png)|(gif)|(pcx)|(css)$
RewriteRule ^/(.*)$ /alias/index.php?$1 [PT]

так всё работает... но как достигнуть подобного эффекта не основываясь на корректировке запроса посредством html-кода? (то есть можно ли сделать , что бы похоже работало без '<base href="http://my_host/">' ?) - RewriteBase / должена вроде как всё исправлять - но она не работает в httpd.conf - хотелось бы всем из него заведывать :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

13. "Подскажите как с помощью RewriteEngine подменить запрос поль..."
Сообщение от vnp emailИскать по авторуВ закладки on 28-Май-04, 02:57  (MSK)
>1. Думаю что нельзя - так как мне для обработки требуется та
>строка , которая придёт GETом из браузера (а ето всё что
>угодно - и всё должно быть обработано должным образом) - поэтому
>необрабатываемых типов быть не должно . Вроде логично. В идеале хотелось
>бы как-нибудь заграничить первоначальный запрос (URI) и те URI , которые
>приходят не с клиентской стороны ...что бы пропустить второе.

Проблема ваша в том, что _абсолютно все_ запросы приходят с клиентской стороны. Для сервера нет никаких "внутренних связей".
Браузер -- по просьбе юзера -- запрашивает файл (допустим, .html), получает его и начинает отображать. Когда в ходе отображения встречаются теги link, img, frame и им подобные, браузер -- по собственной инициативе -- посылает новый запрос. Как инициирован тот или иной get, установить невозможно.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

14. "Подскажите как с помощью RewriteEngine подменить запрос поль..."
Сообщение от catoffsky emailИскать по авторуВ закладки on 29-Май-04, 19:10  (MSK)

>
>Проблема ваша в том, что _абсолютно все_ запросы приходят с клиентской стороны.
>Для сервера нет никаких "внутренних связей".
>Браузер -- по просьбе юзера -- запрашивает файл (допустим, .html), получает его
>и начинает отображать. Когда в ходе отображения встречаются теги link, img,
>frame и им подобные, браузер -- по собственной инициативе -- посылает
>новый запрос. Как инициирован тот или иной get, установить невозможно.

да - точно :( спасибо что прояснил - как же тогда мне решить эту задачу?
.css ,да и все файлы текстового содержания, можно инклюдить - но как быть с картинками например?

я говорил что сделал :

RewriteCond %{REQUEST_URI} !\.(swf)|(jpg)|(png)|(gif)|(pcx)|(css)$
RewriteRule ^/(.*)$ /alias/index.php?$1 [PT]

но вот такой запрос : http://my_host/http://hacker_host/cheat_gif.gif (такое вообше возможно ?)
не пройдёт обработку файлом index.php со свеми последствиями...:(

как вообще решаются такого рода задачи (мб технологию надо ещё какую-нить использовать или ешё что...)?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

15. "Подскажите как с помощью RewriteEngine подменить запрос поль..."
Сообщение от catoffsky emailИскать по авторуВ закладки on 03-Июн-04, 20:37  (MSK)
если коротко :
есть ли аналог RewriteBase / для httpd.conf?
  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру