CodeIgniter на поддомен и htaccess - PullRequest
0 голосов
/ 08 февраля 2012

Я пытаюсь настроить веб-сайт на основе CodeIgniter. Для разработки хочу иметь domain dev.XXX.com

Я изменил свою структуру, поэтому у меня есть папки no_www и public_www. Оба находятся в корне dev.XXX.com

Так что моя идея была переписать форму URL

dev.XXX.com/index.php/test

до

dev.XXX.com/public_www/index.php/test

Так что я просто хочу добавить public_www ко всем запросам

В моем файле htaccess у меня есть:

RewriteRule ^(.*)$ /public_www/$1 [L]

Но я всегда получаю 500 - Внутренняя ошибка сервера

1 Ответ

5 голосов
/ 08 февраля 2012

Попробуйте добавить следующее в файл .htaccess в корневом каталоге (public_www) вашего сайта.

RewriteEngine on
RewriteBase / 

#if its on dev.xxx.com
RewriteCond %{HTTP_HOST} ^dev\.XXX\.com$ [NC] 
#if its not already public_www/ rewrite to public_www/
RewriteRule ^(?!public_www/)(.*)$ /public_www/$1 [L,NC]

Правило, которое вы имели, привело бы к бесконечной перезаписи и последующей ошибке 500. То, что выше, должно предотвратить это.

EDIT

Не могли бы вы объяснить, почему моя версия ведет к бесконечному циклу

Я, вероятно, ошибаюсь в бесконечном цикле, но ниже будет то, что произойдет

  1. Начать с любого ввода
  2. ^(.*)$ шаблон будет соответствовать любому входу
  3. Переписать будет /public_www/$1
  4. .htaccess правила будут запущены снова
  5. ^(.*)$ шаблон будет соответствовать переписанному вводу /public_www/$1
  6. Переписать будет /public_www/public_www/$1
  7. На данный момент, скорее всего, произойдет сбой, так как каталог не существует ...

Ваш шаблон RewriteRule ^(.*)$ будет соответствовать всем входным данным и будет перезаписан. Правила .htaccess будут снова запущены

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