2009-10-08 5 views
0

У меня есть httpd.conf файл, который выглядит следующим образом:Перенос httpd.conf в .htaccess?

Alias /robots.txt /var/www/tech_eval/static/robots.txt 
Alias /favicon.ico /var/www/tech_eval/static/favicon.ico 

AliasMatch /([^/]*\.css) /var/www/tech_eval/static/styles/$1 

Alias /media/ /var/www/tech_eval/static/media/ 

<Directory /var/www/tech_eval/static> 
Order deny,allow 
Allow from all 
</Directory> 

WSGIScriptAlias /tech_eval /var/www/tech_eval/scripts/django.wsgi 

<Directory /var/www/tech_eval/scripts> 
Order allow,deny 
Allow from all 
</Directory> 

Это прекрасно работает для моего tech_eval проекта, но это начинает вызывать проблемы с другими сайтами. Я думаю, мне было бы целесообразно переместить все это в файл .htaccess, расположенный в папке tech_eval, чтобы он не вызывал проблем. Хотя, я не думаю, что все эти варианты будут работать, когда побегут с .htaccess, не так ли? Какие у меня варианты? Я имею в виду, я мог бы исправить это, добавив все tech_eval, но потом я завершаю работу с одним большим файлом-мастером для всех своих сайтов, и это просто станет большим беспорядком.

+0

Вы запрашиваете версии строк .htaccess? – random

+0

Рассматривали ли вы использование виртуальных хостов? – blak3r

+0

@ e.c.ho: Я полагаю, если это лучший подход. Я думаю, что некоторые из «Псевдонимов» можно сделать с помощью «RewriteRules», но я не знаю, что делать с «WSGIScriptAlias». @ blak3r: Э? Я всю жизнь работаю на общих серверах и, наконец, немного контролирую этот. Я предполагаю, что это будет классифицировано как * VPS *, но все это ново для меня :) Вы должны это объяснить. – mpen

ответ

1

На самом деле не слишком ясно, какую проблему вы пытаетесь решить. Почему вы даже используете эту конфигурацию в первую очередь? Похоже, вы просто скопировали его из документации mod_wsgi, не понимая, что делает каждый бит, и начал использовать его, когда он даже не подходит для вашей установки. В частности, этот пример в документации mod_wsgi был общим примером и не обязательно подходит для Django.

Таким образом, скорее, пытаясь исправить эту конфигурацию для достижения какой-то неизвестной цели, просто опишите, что вам нужно, и расскажете, какая именно конфигурация должна использоваться вами.


UPDATE 1

За мой комментарий ниже, возможно, используйте:

AliasMatch /tech_eval/([^/]*\.css) /var/www/tech_eval/static/styles/$1 

Alias /tech_eval/media/ /var/www/tech_eval/static/media/ 

<Directory /var/www/tech_eval/static> 
Order deny,allow 
Allow from all 
</Directory> 

WSGIScriptAlias /tech_eval /var/www/tech_eval/scripts/django.wsgi 

<Directory /var/www/tech_eval/scripts> 
Order allow,deny 
Allow from all 
</Directory> 

Просто канаву robots.txt и favicon.ico или, по крайней мере, не получают их из суб URL сайт и просто привяжите их прямо в каталоге DocumentRoot и используйте те, которые действительно предназначены для всего сайта.

Я думаю, что это «ADMIN_MEDIA_PREFIX» в модуле настроек Django, который затем вам нужно изменить на «/ tech_eval/media /».

Для Django не думайте, что вам даже нужен псевдоним CSS, и именно здесь это было изначально типичным примером, чтобы показать концепции, а не быть чем-то правильным для Django.

Во всяком случае, все тогда находится под «/ tech_eval» и не должно мешать другим приложениям на одном сайте.

+0

Я не копировал его из документации mod_wsgi, я скопировал его из Django tut, и я точно знаю, что он делает. У меня есть проект под названием «tech_eval»; эта конфигурация специфична для этого проекта. Я хочу каким-то образом инкапсулировать эту конфигурацию, чтобы она не влияла на мои другие проекты (поскольку «httpd.conf» является «глобальным» в некотором смысле). Я думаю, что это было бы наиболее удобно помещено в фактическую папку проекта, но я открыт для других решений. – mpen

+0

Затем учебник скопировал его из http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines#Hosting_Of_Static_Files. Моя забота заключается в том, что конфигурация подталкивает материал к корню сайта для чего-то, что находится под дополнительным URL-адресом. Да, это то, что делал оригинальный пример, но вы действительно этого хотите? Сделайте то, что хотите, чтобы favicon.ico и robots.txt исходили из этого конкретного сайта под URL? Вы хотите, чтобы файлы CSS были перенаправлены на root? Поскольку Alias ​​/ AliasMatch имеет приоритет над WSGIScriptAlias, вы можете прикрепить LHS к '/ tech_eval'. Просто измените настройки Django для URL-адреса медиа-URL. –

1

Используйте VirtualHosts для ограничения объема этих строк и включения каждого виртуального хоста для организации ваших конфигурационных файлов и предотвращения его неустойчивости.

+0

Ухх ... как это работает? Я смотрю на эту директиву '' теперь ... мне нужно несколько IP-адресов ...? Когда я это делаю, я полный n00b. Я недавно установил 'phppgadmin', и он похож на' Alias', поскольку он установлен в '/ etc/apache2/conf.d'. Не мог ли я иметь такой файл для каждого из моих сайтов? Загружаются ли они автоматически? – mpen

+0

К сожалению, способ настройки файлов конфигурации Apache сильно варьируется по распределению. Этого достаточно, чтобы заставить вас сходить с ума.Ищите строки Include в файле httpd.conf, вероятно, около дна. Если путь является каталогом, он будет содержать все файлы в этом каталоге. –

+0

Вам не нужны отдельные IP-адреса для виртуальных хостов на основе имени (http://httpd.apache.org/docs/1.3/vhosts/name-based.html). Вам нужны отдельные доменные имена (или, по крайней мере, субдомен имена), которые я предполагаю, что у вас есть фразы типа «все мои сайты». –

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

  • Нет связанных вопросов^_^