2010-08-09 3 views
0

Что-то странное происходит. Я использую Zend Framework в подпапке на сайте. У меня модульная структура для моего сайта, поэтому ссылки состоят из имен модулей (www.xx.com/ modulename). Я создал файл .htaccess для корневого каталога, так что все запросы будут перенаправлены в публичный..htaccess определенная папка не переписывается

Когда я пытаюсь получить доступ к домашней странице (www.xx.com) или любой модуль, все идет точно так, как должно. www.xx.com/authentication, www.xx.com/sample или www.xx.com/deathmetalreallyrox все работают так, как должны. Но когда я пытаюсь подключиться к www.xx.com/admin, он падает и ожоги !!!! Он работает, однако, с www.xx.com/public/admin/.

Возможно ли, что мой хостинг-провайдер настроил какое-то правило в httpd.conf, чтобы предотвратить доступ к разделу admin на моем хостинге? Вот мой .htaccess:

SetEnv APPLICATION_ENV development 

RewriteRule ^(browse|config).* - [L] 
ErrorDocument 500 /error-docs/500.shtml 
SetEnv CACHE_OFFSET 2678400 
SetEnv APP_DOMAIN http://www.xx.com/public 
SetEnv APP_PREF /public 

<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> 
Header set Expires "Fri, 25 Sep 2037 19:30:32 GMT" 
Header unset ETag 
FileETag None 
</FilesMatch> 

RewriteEngine On 
RewriteRule ^(adm|statistics) - [L] 
RewriteRule ^admin/(.*) public/admin/$1 
RewriteRule ^(.*)$ public/$1 [L] 

Помощь?

EDIT: Browser ошибка сбщ:

Not Found 

The requested URL /admin/ was not found on this server. 
+0

Что вы подразумеваете под словом «Но когда я пытаюсь подключиться к www.xx.com/admin, он падает и BURNS»? У вас есть ошибка 500? Цикл перенаправления? –

+0

Ой, извините, забыли эту часть, отредактировал. –

+1

Какова цель: «RewriteRule^admin /(.*) public/admin/$ 1' означает служить здесь? –

ответ

0

Оказалось, что сервер каким-то образом настроен неправильно.

Поскольку я не имею полный контроль над сервером, я не мог знать, что существует правило в httpd.conf, что отказано в доступе к любой папке с именем администратора или администратор, так что когда я попытался получить содержимое папки по этому имени, сначала проверял Apache, если папка с этим именем существовала и по умолчанию отрицала ее.

Итак, краткий ответ, сервер был настроен неправильно, не разрешал доступ к определенным папкам.

0

Вы перенаправлять ничего, начиная с admin/ до public/admin/ первого, а затем все в public/whatever. Поэтому, когда вы запрашиваете /admin/, он пытается дать вам /public/public/admin/, которого нет у вас, поэтому вы получите 404.

Попробуйте удалить строку RewriteRule ^admin/(.*) public/admin/$1. Он уже обрабатывается следующей строкой, и вы не хотите делать это дважды.

+0

Да, но пока это правда, это не было причиной. Ответил сам. –

Смежные вопросы