Помогите разобраться с .htaccess
Прислано: Geldora
вс, 23/08/2009 - 11:57
Здравствуйте!
Подскажите пож-ста как правильно поправить .htaccess?
В общем, использую антилич от компании смскоин. В числе прочего, там есть файл .хтаксесс, который кладется в папку с файлами, которые нужно продавать за смс:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^(.*)$ /rsmsantileech/check.php?file=$1 [QSA,L]
Кроме того, я добавила в этот файл строки, требующиеся Друпалу:
SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006 Options None Options +FollowSymLinks
Так вот, с того момента как проапдейтила Друпал до 6ки, этот скрипт перестал работать... Сейчас стало понятно, что проблема лежит в .хтаксессе - он просто не переправляет файлы, лежащие в папке files/private на /rsmsantileech/check.php?file=
Знакомый сказал, что проблема в строчках из основного файла .хтаксесс Друпала:
«
# Rewrite current-style URLs of the form 'index.php?q=x'. RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Так вот: как совместить эти .хтаксессы, чтобы и друпал продолжал работать, и файлы переправляло?
- Geldora's blog
- Для комментирования войдите или зарегистрируйтесь
Вам не нужно создавать новый хтаксесс в папке "files/private"
Просто подправьте корневой хтаксесс примерно так.
перед Друпаловский реврайтом поставьте свой.
я так делал на своих сайтах, что бы друпал не хватал бессмысленные 404 ошибки
вот пример защиты от дерганья dll и asp файлов. files_404.php - мой отдельный скрипт который не затрагивает Друпал.
# Not Found dll and asp files RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} ^\/?(.*)\.(asp|dll)$ RewriteRule ^(.*)$ files_404.php [L] # Rewrite current-style URLs of the form 'index.php?q=x'. RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
В Вашем случае код будет примерно такой:
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} ^\/?files\/private\/(.*)$ RewriteRule ^(.*)$ /rsmsantileech/check.php?file=$1 [QSA,L] # Rewrite current-style URLs of the form 'index.php?q=x'. RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
- Для комментирования войдите или зарегистрируйтесь



Комментарии