Как я могу использовать htaccess для защиты подкаталога установки codeigniter? - PullRequest
0 голосов
/ 03 апреля 2010

У меня установлен codeigniter в корневом каталоге, и я хотел бы иметь подкаталог с именем «test», защищенный паролем с помощью htaccess. Я продолжаю получать «404 страница не найдена», что бы я ни пытался. Структура каталогов:

/public_html  
    /css  
    /images
    /system (codeigniter directory)
    /test
        .htaccess
.htaccess
.htpasswd
index.php

Корневой файл .htaccess выглядит так:

RewriteEngine On
RewriteBase /

Options -Indexes    

# Removes trailing slashes
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ $1 [L,R=301]

# Enforce www
RewriteCond %{HTTP_HOST} !^(www) [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [L,R=301]


#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^(.*)test(.*)    
RewriteRule ^(.*)$ index.php?/$1 [L]

Файл /test/.htaccess:

AuthUserFile /home/dir/.htpasswd
AuthName "Protected Area"
AuthType Basic
<limit GET POST PUT>
  require user adminuser
</limit>

У меня даже не появляется запрос на аутентификацию, просто страница кодового указателя 404, когда я перехожу к URL-адресу "http://www.mydomain.com/test/".

Пожалуйста, сообщите!

Ответы [ 2 ]

2 голосов
/ 07 апреля 2010

Вот как я окончательно решил эту проблему (решение найдено на форуме CodeIgniter по адресу http://codeigniter.com/forums/viewthread/56677/P15/):

У меня была эта строка для моего root htaccess:

RewriteCond $1 !^(401.shtml)

Итак, последний блок в моем корневом htaccess выглядел так:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(401.shtml)
RewriteRule ^(.*)$ index.php?/$1 [L]

Так рад, что там было решение.

0 голосов
/ 05 апреля 2010
RewriteCond $1 !^(index\.php|addFoldersHere)

Попробуйте это вместо вашего текущего правила RewriteCond в вашем основном .htaccess. Это позволит указанным вами папкам (где написано addFoldersHere) не игнорироваться. Убедитесь, что вы не добавляете завершающий символ | после списка папок.

...