.htaccess конфликтует с защищенным каталогом (.htpasswd) - PullRequest
3 голосов
/ 25 марта 2011

Я использую файл .htaccess, чтобы переписать свои URL-адреса, чтобы сделать их оптимизированными для SEO, это прекрасно работает.Этот файл находится в корне (public_html).Там тоже работает веб-сайт.

Теперь я создал каталог с именем 'templates' с CHMOD до 777. Я хочу, чтобы он был защищен, чтобы эти файлы не могли быть доступны извне.

Через directadminЯ защищал эту папку.

Теперь, если я использую свой браузер для серфинга на веб-сайте, все URL-адреса все еще остаются SEO.Однако, когда я пытаюсь перейти в этот защищенный каталог (шаблоны), он показывает страницу 404, которую я создал, но показывает 401.shtml в качестве заголовка.Если я посмотрю на URL-адрес, на нем также отобразится 'domain.com/401.shtml/'.

. Он также не запрашивает у меня имя пользователя или пароль.

Теперь, если я удалю или простопереименуйте файл htaccess (в .htaccess2), который находится в public_html (тот, который организует все дружественные для SEO URL), страницы на сайте не работают (очевидно), но теперь, если я перехожу к этому каталогу / templates, он спрашиваетменя для имени пользователя и пароля, и я могу войти и получить доступ к файлам.

Это файл htaccess, который я использую в корне:

RewriteEngine On

ErrorDocument 404 /home
RewriteBase /

RewriteCond %{REQUEST_FILENAME} -f [NC,OR]
RewriteCond %{REQUEST_FILENAME} -d [NC]

RewriteRule ^(.*?)$ $1 [L]

RewriteRule ^(nl|NL|fr|FR|en|EN)/start\.html$ /$1/ [R=301]

RewriteRule ^([^/]*)$ /$1/ [R=301]
RewriteRule ^([^/]*)/$ index.php?page=$1 [L]

RewriteRule ^([^/]*)/([^/]*)$ /$1/$2/ [R=301]
RewriteRule ^([^/]*)/([^/]*)/$ /index.php?page=$1&subpage=$2 [L]

RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /$1/$2/$3/ [R=301]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/$ /index.php?page=$1&subpage=$2&subsubpage=$3 [L]

РЕДАКТИРОВАТЬ: я заметил, чтоКогда я выключаю RewriteEngine в основном файле htaccess, он тоже работает (за исключением, конечно, перезаписи).Есть идеи?

1 Ответ

8 голосов
/ 25 марта 2011

Я нашел это в Интернете, которое, кажется, работает!

Проблема в том, что при доступе к защищенному контенту Apache отправляет заголовок 401.

Мне пришлось добавить следующее в .htaccessфайл, который находился в защищенном каталоге.

ErrorDocument 401 "Unauthorized Access"
RewriteEngine off
...