Корень сайта Apache для разработки каталогов на localhost - PullRequest
1 голос
/ 28 мая 2010

Я думаю, что что-то упустил и не думаю, что я действительно понимаю, как работает rewriteBase.

Проблема, с которой я столкнулся, заключается в том, что у меня есть рабочий сайт, где этот сайт находится в корневом каталоге, а сайт разработки находится в подкаталоге localhost. Например, http://www.sitename.com/ против http://localhost/sitename/

Если у меня есть, например, папка с изображениями, я хочу сослаться на изображения из корня сайта, используя начальную косую черту в href. Например, использование относительного href (без начального слеша) не вариант. Это будет работать на производственной площадке, но сайт разработки ищет http://localhost/images/imagename.jpg вместо http://localhost/sitename/images/imagename.jpg

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

Options +FollowSymLinks
RewriteEngine On
RewriteBase /sitename

Но это все еще использует localhost в качестве корня сайта вместо localhost / sitename.

Может кто-нибудь дать мне несколько советов?

------------------------- EDIT --------------------- ------

Я прекратил попытки сделать это в файле .htaccess и попытался просто использовать команду html, но это также не сработало.

В конце концов, я установил Виртуальные хосты в Apache на локальном сервере, но кажется, что это слишком много, просто поменять корень сайта. Я также обеспокоен тем, что другие разработчики в сети LAN не смогут получить доступ к сайту должным образом через виртуальный хост.

Мне действительно нужны советы из "передового опыта", пожалуйста, по настройке работающей среды разработки в WAMP.

1 Ответ

0 голосов
/ 23 мая 2011

RewriteBase сам по себе, в основном, сообщает Apache, где применять RewriteRule s. Здесь у вас нет ни одного. Кстати, вы можете либо полностью удалить директиву RewriteBase, либо изменить ее на:

RewriteBase /

Следующие две строки должны заставить его работать для вашей среды разработки только :

RewriteCond %{ REQUEST_FILENAME } !-f
RewriteRule ^(.+)$ /sitename/$1 [L,QSA]

Эти две директивы означают: «если запрошенный файл не существует (-f) и только в этом случае переписать URL-адрес, добавив /sitename/ к запрошенному URI ($1)".

Для получения дополнительной информации вы можете посмотреть Apache mod_rewrite docs и Руководство по переписыванию Apache URL .

...