Помогите с mod_rewrite

igor_avr

Guest
Sir_J
Если не сложно, то объясни как этим пользоватся и как это работает? А то у меня ничего не вышло. :(
 

Sir_J

Guest
Ты ссылки которые я привел выше вниматедьно прочитал ?
 

igor_avr

Guest
Sir_J, читал, но не всё понял.
Может я в начале не совсем правильно выразился. Я хочу нормально попадать в реальные папки.

Например у меня есть реальная папка www.site.com/admin/
И есть условие, которые мне помогли составить выше. В итогде если я наберу www.site.com/admin/, то он посчитает, что это www.site.com/index.php?ms=admin и будет дейтствовать согласно описанному правилу и реально я в папку не попаду.

Но что-то условие, которые Вы написали выше у меня не работает. Он всё равно не распознаёт реальную папку.
 

Sir_J

Guest
Тебе надо использовать что то типа

RewriteCond %{REQUEST_URI} !^admin$
RewriteRule ^(.*)/(.*)/$ index.php?ms=$1&ps=$2 [L]
RewriteRule ^(.*)/$ index.php?ms=$1

Подпаравь этот пример под себя
 

igor_avr

Guest
Получилось сделать таким вот образом:
RewriteRule ^admin/.*$ - [L]
 

igor_avr

Guest
Хм. Перестало всё работать.
Выдаёт Zero Sized Reply. Если отключить mod_rewrite, то работает. В чём могут быть грабли?
 

Yamamoto

Guest
как пример использования mod_rewrite:

RewriteEngine on
RewriteBase /

#блокировать доступ к папкам, в которые кроме скриптов никто лазить не должен
RewriteRule ^(admin/)?(inc|modules|sql) 404/ [L]

#если файл реально существует (картинки например), то выдать это файл
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ %{REQUEST_FILENAME} [L]

#если это папка, и в ней есть index, то выдать этот index
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME}/index.php -f
RewriteRule ^ %{REQUEST_FILENAME}/index.php [L]

#а если index нету, то блокировать
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule ^ 404/ [L]

#если запрашивается папка admin, то все что идет после admin/ передать на admin/index.php (например admin/news/add -> передает /news/add)
RewriteRule ^admin/(.*[^/]) admin/index.php?www=/$1/ [QSA,L]

#а теперь все что осталось:)
RewriteRule ^(.*[^/]) index.php?www=/$1/ [QSA,L]
 

igor_avr

Guest
А вот ещё один глупый вопрос возник. Что нужно сделать чтоб решить проблемы со слешем? Как я понимаю надо сделать просто редирект?

Надо чтоб зайдя на http://www.site.com/about человек перемещался на http://www.site.com/about/
 
Сверху