Ошибка с переписыванием htaccess - PullRequest
0 голосов
/ 21 сентября 2010

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

RewriteEngine On
RewriteBase /

# To redirect www.site1.com to /site1/
RewriteCond %{REQUEST_URI} !^/site1/
RewriteCond %{HTTP_HOST} ^(www\.)?site1\.www\.
RewriteRule ^(.*)$ site1/$1 [L]

Это здорово, потому что он перенаправляет всех, кто переходит на site1.com, на / site1 /, и у меня естьстраница для site1 в этом каталоге.На самом деле у меня есть те же три других домена, и они отлично работают (папка скрыта в строке URL).

Моя проблема в том, что я добавил новый домен (site2.com), который является приложением Zend.Поэтому у него есть свой собственный htaccess для переписывания URL (для передачи параметров более приятным способом в URL).Для этого он не работает.На самом деле я перенаправлен НАЗАД на / и получаю страницу /index.html, которую никто не должен получить.Просто чтобы заметить: webroot Zend-приложения - это «www»:

Второй htacess внутри / site2 / www -

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Я не знаю, как это происходит.Разве команды htaccess не являются относительными?почему он возвращается на два уровня (помните, что он находится в / site2 / www, а файл, который я получаю, находится в /index.php (тест))

1 Ответ

0 голосов
/ 22 сентября 2010

это не относительно, уважайте вас RewriteBase с верхнего уровня, где находится ... Просто вставьте htaccess под site2

RewriteBase /site2/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...