Помогите с mod_rewrite

shaliko

Новичок
Помогите с mod_rewrite

Помогите составить правила mod_rewrite для следующей задачи:

На сервере есть папка plugin/

Мне необходимо что бы все запросы к файлам и папкам находящимся ниже папки "plugin" перенаправлялись на один скрипт "script.php". При этом в script.php должна быть доступна переменная с url-ом который вводил пользователь.


Заранее спасибо!
 

lucas

Guest
Как ты пытался это сделать?
Приведи код.
 

lucas

Guest
Объясняю: по ссылке можно кликнуть.

P.S.: При чем тут рег. выражения?
 

shaliko

Новичок
Автор оригинала: lucas
Объясняю: по ссылке можно кликнуть.

P.S.: При чем тут рег. выражения?
Мне необходимо, что-бы в браузе осталась сылка типа www.mysite.ru/pugins/12/03/2005/

А этот запрос к серверу обрабатывался скриптом script.php и для пользователя это былобы прозрачно.
 

bgm

 

Sheridan

Новичок
RewriteEngine On
RewriteBase /plugin/
RewriteRule ^(.*)$ script.php?url=$1

если нужен сразу полный URL - можешь снять его $_SERVER['REQUEST_URI']
 

shaliko

Новичок
Автор оригинала: Sheridan
RewriteEngine On
RewriteBase /plugin/
RewriteRule ^(.*)$ script.php?url=$1

если нужен сразу полный URL - можешь снять его $_SERVER['REQUEST_URI']
Sheridan огромное спасибо!!! Очень выручил!

Не срабатывает только в одном случае, если не ставить / после имени папки:
www.mysite.ru/pugins
 

Sheridan

Новичок
Это настройка апачи. Он воспринимает как файл, а не папку. По-моему, для этого нужно покопаться в httpd.conf

Если супер-критично, чтобы всё было так - можно добавить ещё кода в мод-реврайт:

RewriteBase /
RewriteRule ^plugin$ plugin/script.php?url=$1

Попробуй так.

-~{}~ 21.07.05 17:32:

сорри ошибся, ?url=$1 передавать не нужно в таком случае

(прошу прощения у того, кого жутко разъярила моя ошибка. ламер всё же)
 

Крю

Guest
а как написать чтобы при обращении к http://mysite.ru/str1.php получить преобразование к http://mysite.ru/index.php?id=1
 

Крю

Guest
Sheridan
а если index.php лежит в папке mycatalog
http://mysite.ru/mycatalog/index.php?id=1

то RewriteBase /mycatalog/
?
 

kv@rx

Guest
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)str1.php$ $1mycatalog/index.php?id=1

Так попробуй. RewriteBase /mycatalog/ врядли правильно.
 

Sheridan

Новичок
RewriteEngine On
RewriteBase /
RewriteRule ^mycatalog/(.*)$ mycatalog/index.php?id=$1

Здесь слэш не важен. он укажет на окончание твоего N, но без него тоже сработает.
 

Крю

Guest
Sheridan
если в index.php для проверки написать

echo $_GET['id']; то

если ссылка будет
http://mysite.ru/mycatalog/1/, то эхо выведет '1/'

если ссылка будет
http://mysite.ru/mycatalog/1, то эхо выведет 1

т.е. в первом случае в $_GET['id'] попадает '1/' а во втором '1' ... именно из-за этого акцентировал внимание на слэще на конце. Наверное можно потом просто отрезать слеш у $_GET['id'].

Или все-же можно при написании правил преобразования учесть- обращение было со слэшем и без слэша на конце?
 
Сверху