Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» Apache + mod_rewrite: замена ссылок

Автор: jason32
Дата сообщения: 09.11.2004 02:17
перенаправили сюда:
Проблема такая:попросили подправить старый готовый сайт.
Были ссылки типа www/.../dir/?[число]-надо у клиента в браузере в строке адреса исправить на www/.../dir/[число] ,не трогая саму ссылку.Как это сделать через mod_rewrite?
Плюс ещё какой-то непонятный trubl:не могу экранировать "?".
Естественно,все запросы www/.../dir/[число] надо перевести в www/.../dir/?[число].
Видимо,как-то надо через redirect,а как-не знаю.
ПОМОГИТЕ НАЧИНАЮЩЕМУ НЕОПЫТНОМУ php-ПРОГРАММИСТУ.
lynx,ты скажи-это вообще возможно-разобрать входящий URL www/.../dir/?[число] ?
Автор: Cheery
Дата сообщения: 09.11.2004 02:30
jason32

Цитата:
Видимо,как-то надо через redirect,а как-не знаю.

не знаешь - читай мануалы и пробуй.
тут в разделе mod_rewrite
http://forum.ru-board.com/topic.cgi?forum=8&topic=3291#1


Цитата:
Были ссылки типа www/.../dir/?[число]-надо у клиента в браузере в строке адреса исправить на www/.../dir/[число] ,не трогая саму ссылку.Как это сделать через mod_rewrite?
Плюс ещё какой-то непонятный trubl:не могу экранировать "?".
Естественно,все запросы www/.../dir/[число] надо перевести в www/.../dir/?[число].


так что тебе нужно? одно или второе? сервером в браузере строку адреса не исправишь.
какой смысл сначала переделывать туда, а потом обратно?
Автор: jason32
Дата сообщения: 09.11.2004 02:52
Cheery,коротко говоря-проблема одна-как экранировать "?" и возможно ли это вообще.
У меня нехорошее предчувствие,что URL со знаком вопроса APACHE раскладывает самостоятельно на переменные до всяких модреврайтов.Жду подтверждения уважаемых людей.
Cheery,ОТВЕТЬ!!!.
Автор: Cheery
Дата сообщения: 09.11.2004 02:55
jason32

Цитата:
Cheery,ОТВЕТЬ!!!.

не ори.. не глухие и не слепые..
как сделать - ответил в пред. топике.
RewriteCond %{QUERY_STRING} ([0-9]+)
RewriteRule ^/dir/$ /dir/%1

зы: не проверял, но вроде так должно ..
зызы: и не уверен, что это решение, а не костыль

зызызы: да что ты говоришь, что экранирует.. щас напишу, как нужно
вернее после того, чтоже тебе нужно.. какой из двух вариантов.. так как в применении обоих сразу не вижу смысла.

а чтобы не было вопроса о разделении.. посмотрел бы rewrite.log

127.0.0.1 - - [08/Nov/2004:20:06:36 --0500] [localhost/sid#26bc90][rid#5a7890/initial] (2) rewrite /dir/4545345 -> /dir/?4545345
127.0.0.1 - - [08/Nov/2004:20:06:36 --0500] [localhost/sid#26bc90][rid#5a7890/initial] (3) split uri=/dir/?4545345 -> uri=/dir/, args=4545345
Автор: qik
Дата сообщения: 12.01.2005 01:00
помогите разобраться:

# включаем раз
RewriteEngine On
# включаем два
Options +FollowSymlinks
# ???
RewriteCond %{REQUEST_FILENAME} !-f
# ???
RewriteCond %{REQUEST_FILENAME} !-d
#вроде как ищем REQUEST_FILENAME с чем-либо из (swf)|(jpg)|(png)|(gif)
RewriteCond %{REQUEST_FILENAME} !\.(swf)|(jpg)|(png)|(gif)$
#когда пишем /picture/ открываем по сути view.htm?uri=picture.jpg
RewriteRule ^(.+) view.htm?uri=$1 [L]

поправьте если не что так.
Автор: Advanced_Guest
Дата сообщения: 13.01.2005 01:06
# включаем раз
RewriteEngine On
# включаем два
Options +FollowSymlinks
# -f проверяет что файл, значок ! говорит что НЕТ (то есть проверяет что запрос не файл)
RewriteCond %{REQUEST_FILENAME} !-f
# тоже самое , но -d - папка (запрос не папка)
RewriteCond %{REQUEST_FILENAME} !-d
#вроде как ищем REQUEST_FILENAME с чем-либо из (swf)|(jpg)|(png)|(gif)
#наоборот, Проверяем чтобы в REQUEST_FILENAME небыло этих swf jpg png gif ( | - или)
RewriteCond %{REQUEST_FILENAME} !\.(swf)|(jpg)|(png)|(gif)$
#когда пишем /picture/ открываем по сути view.htm?uri=picture.jpg
# нет, когда пишем /picture по идее должны открывать view.htm?uri=picture/ или view.htm?uri=picture
RewriteRule ^(.+) view.htm?uri=$1 [L]
Автор: chin one
Дата сообщения: 16.01.2005 02:57
Совсем запутался с этим rewrite...
Проблема у меня такая:

Код: RewriteRule ^(.*)\.html(\?(.*))? index.php?page=$1&$3
Автор: morjov
Дата сообщения: 16.01.2005 13:20
chin one
если мне не изменяет мой склероз, то должно быть так:
Код: RewriteRule ^(.*)\.html$ index.php?page=$1&%{QUERY_STRING}
Автор: chin one
Дата сообщения: 16.01.2005 15:28
Надеюсь, что %{QUERY_STRING} не включает в себя "?" Ща буду тестить, спасибо !

Добавлено:
Работает! Спасибо! Теперь, отталкиваясь от этого буду совершенствовать.
Должен принести извинения: пролистал только что форум вверх - увидел, что моя проблема была решена еще до того, как я ее запостил Cheery все понятно описал, а я, баран, не обратил внимание. Сори!
Автор: denis333
Дата сообщения: 04.03.2005 21:28
Подскажите
надо вот что
есть поддомен test.test.ru
и есть папка test.ru/test
вот сейчас сайт доустпен и проиндексирован и так и так
но мне надо чтобы както через mod rewrite настроит чтобы кто зашел по старому адресу test.ru/test/ .... автоматически был на test.test.ru

Страницы: 12

Предыдущая тема: Запуск прог и Доступ к папкам Windows под цигвином (cygwin)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.