.htaccess

12
A
На сайте с 04.10.2012
Offline
15
656

Есть набор правил для сервера:

RewriteEngine on

RewriteRule ^single/([0-9]+).+?/download/? index.php?action=single&id=$1&download=1 [L]

RewriteRule ^single/([0-9]+)/? index.php?action=single&id=$1 [L]

RewriteRule ^single/download/? index.php?action=not_found [L]

RewriteRule ^single/? index.php?action=not_found [L]

RewriteRule ^category/([-a-zA-Z_]+)/([0-9]+)/? index.php?action=category&name=$1&page=$2 [L]

RewriteRule ^category/([-a-zA-Z_]+)/? index.php?action=category&name=$1 [L]

RewriteRule ^([0-9]+)/? index.php?action=index&page=$1 [L]

RewriteRule ^category/? index.php?action=not_found [L]

RewriteRule ^copyright/? index.php?action=copyright [L]

RewriteRule ^rss/? index.php?action=rss [L]

И нужно сюда добавить,чтобы нельзя было достучаться до файлов на прямую,чтобы при попытке выкидывало на index.php,жду ваше помощи,заранее спасибо)

---------- Добавлено 06.11.2012 в 17:30 ----------

Прописал

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule .* /index.php [L,QSA]

Но тогда перенаправляет только если пытаешся зайти в какую-то папку,а при точном указании пути до конкретного файла такой вариант не работает

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#1

Имеете ввиду, чтобы при запросе index.php?action=category&name=trava&page=1 перекидывало на индекс.пхп? Зачем на индекс пхп? Почему бы не переадресовывать на правильную ЧПУ-шную ссылку?

Подпись))
skAmZ
На сайте с 04.09.2009
Offline
122
#2

Agronya, какой тип файлов? Стоит на сервере nginx?

Если путь типа: http://site.ru/dir/text.txt и стоит nginx, тогда htaccess вам не поможет.

Если nginx стоит уточняйте какие типы файлов он обрабатывает.

A
На сайте с 04.10.2012
Offline
15
#3
Милованов Ю.С:
Имеете ввиду, чтобы при запросе index.php?action=category&name=trava&page=1 перекидывало на индекс.пхп? Зачем на индекс пхп? Почему бы не переадресовывать на правильную ЧПУ-шную ссылку?

Имеется ввиду что если ссылка не соответствует ни одному из выше изложенных правил то выкидывать на index.php ну или на аналог $_SERVER['HOST_NAME'] раз зашла речь о чпу :)

---------- Добавлено 06.11.2012 в 17:55 ----------

skAmZ:
Agronya, какой тип файлов? Стоит на сервере nginx?
Если путь типа: http://site.ru/dir/text.txt и стоит nginx, тогда htaccess вам не поможет.
Если nginx стоит уточняйте какие типы файлов он обрабатывает.

Стоит apache

skAmZ
На сайте с 04.09.2009
Offline
122
#4
Agronya:
Стоит apache

Одно другому не мешает, nginx ставится поверх apache.

A
На сайте с 04.10.2012
Offline
15
#5
skAmZ:
Одно другому не мешает, nginx ставится поверх apache.

Ну я ничего не ставил поверх apache :)

skAmZ
На сайте с 04.09.2009
Offline
122
#6

Agronya, и это же совсем не значит, что хостинг по умолчанию этого не сделал?)

A
На сайте с 04.10.2012
Offline
15
#7
skAmZ:
Agronya, и это же совсем не значит, что хостинг по умолчанию этого не сделал?)

Я пока что разрабатываю на своем тестовом сервере,и там nginx не стоит)

skAmZ
На сайте с 04.09.2009
Offline
122
#8
Agronya:
И нужно сюда добавить,чтобы нельзя было достучаться до файлов на прямую

Данных мало. Как скачивание происходит? Если в конце идет редирект на файл - надо переделывать.

Если редиректа нет, тогда удалите строку:

RewriteCond %{REQUEST_FILENAME} !-f

Но тогда может ещё что-нибудь поехать.

---------- Добавлено 06.11.2012 в 18:23 ----------

RewriteCond %{REQUEST_FILENAME} !-f

Удалять нельзя, тогда на тот же index.php хрен зайдешь :)

Вам надо менять условие. Например:

RewriteCond %{REQUEST_URI} ^download_dir/



---------- Добавлено 06.11.2012 в 18:27 ----------

Если редиректа нет, ещё вариант: в папку с файлами для скачивания положить файл .htaccess с незамысловатым содержимым:

deny from all

Тогда редиректа не будет, но это в принципе тоже не проблема.

A
На сайте с 04.10.2012
Offline
15
#9

Хотя это не вариант, а что делать со скриптами к которым обращается страница?

Например у меня есть форма поиска и ей нужно обратиться к скрипту, который лежит в папке scripts/search.php , при нажатии на кнопку появляется Forbidden

skAmZ
На сайте с 04.09.2009
Offline
122
#10

Agronya, зависит от того, что сделали вы и какая структура папок.

Я так понимаю вы выбрали последний вариант с "deny from all", тогда показывайте структуру папок начиная от корня и до файлов, которые скачиваются, подписывайте где есть нужные файлы (типа search.php), а где нет...

Если все правильно опишите сами разберетесь... надеюсь :)

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий