Я добавил эти строки в своем виртуальном файле хоста с 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]
Я знаю, что это очень старая статья, но я подумал , что эта информация, которую я нашел на другом сайте 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, и все мои дополнительные файлы не загружались.
Похоже, что переписывание происходит в неправильном месте. Например, веб-сервер пытается найти 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/
В качестве альтернативы вы также можете включить 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
Посмотрите, может ли что-то здесь помочь: https://drupal.org/node/163915 , ваша проблема может быть связана с оператором AllowOverride в; / и т.д. / apache2 / сайты-отсутствуют / по умолчанию