Псевдоним Apache, не работающий правильно

Я добавил эти строки в своем виртуальном файле хоста с 000 значениями по умолчанию:

Alias /antoniocs/project "/home/antoniocs/www/project"
<Directory "/home/antoniocs/www/project">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

/home/antoniocs/www/project Содержит drupal веб-сайт

Если я перехожу в:

localhost/antoniocs/project

Это удается прекрасный. Я вижу все отлично. Но когда я пытаюсь нажать на ссылку, которая берет меня, например, к:

localhost/antoniocs/project/category

Я получаю эту ошибку:

Не найденный

Требуемый URL/home/antoniocs/www/project/index.php не был найден на этом сервере.

Разве это не обрабатывает .htaccess, который находится в папке проекта? Что я делаю неправильно???

Примечание: Я также нахожу это странным, что это дает мне путь к файлу и не путь URL

Работа Apache 2.2.16 (с модификацией переписывают), Ubuntu 10.10 php 5.3.3-1ubuntu9.1

ДОПОЛНИТЕЛЬНОЕ ПРИМЕЧАНИЕ: Для тех, которые не знают drupals htaccess, он перенаправляет все к index.php? q= 1$

% RewriteCond {REQUEST_FILENAME}!-f

% RewriteCond {REQUEST_FILENAME}!-d

% RewriteCond {REQUEST_URI}! =/favicon.ico

RewriteRule ^ (.*) $ index.php? q= 1$ [L, QSA]

3
задан 9 November 2010 в 02:17

4 ответа

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

При использовании alias в конфигурации Apache вам также необходимо использовать RewriteBase в вашем файле .htaccess, который совпадает с псевдонимом.

Alias /antoniocs/project "/home/antoniocs/www/project"
<Directory "/home/antoniocs/www/project">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

Требуется, чтобы вы включили ...

RewriteEngine On    
RewriteBase /antoniocs/project

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Я действительно заметил это в проекте, потому что происходила перезапись с изображениями / js / css, и все мои дополнительные файлы не загружались.

0
ответ дан 9 November 2010 в 02:17

Похоже, что переписывание происходит в неправильном месте. Например, веб-сервер пытается найти URL /home/antoniocs/www/project/index.php вместо локального файла по тому же пути. Возможно, проверьте саму установку Drupal? Вы можете проверить, что думает сервер, посмотрев запросы на перенаправление, используя что-то вроде curl :

curl -I http://localhost/antoniocs/project/category

Посмотрите, возвращен ли код 301 или 302, и это может помочь сузить проблема. Например :

$ curl -I http://www.outflux.net/blog
HTTP/1.1 301 Moved Permanently
...
Location: http://www.outflux.net/blog/
0
ответ дан 9 November 2010 в 02:17

В качестве альтернативы вы также можете включить userdir модуль apache. Так что вам не нужно создавать псевдоним для доступа к кодам, которые находятся в вашем домашнем каталоге

sudo a2enmod userdir
cd ~
mkdir public_html
sudo /etc/init.d/apache2 restart

Поместите свой код в этот public_html, и вы можете получить к нему доступ по http: // localhost / ~ имя пользователя или http: // ipaddress / ~ имя пользователя (например: http: // localhost / ~ aneesh )

Вы можете изменить имя каталога (public_html) путем редактирования файла conf /etc/apache2/mods-enabled/userdir.conf

0
ответ дан 9 November 2010 в 02:17

Посмотрите, может ли что-то здесь помочь: https://drupal.org/node/163915 , ваша проблема может быть связана с оператором AllowOverride в; / и т.д. / apache2 / сайты-отсутствуют / по умолчанию

0
ответ дан 9 November 2010 в 02:17

Другие вопросы по тегам:

Похожие вопросы: