У меня есть локальная установка Drupal. Когда я захожу на домашнюю страницу, используя свой IP, все работает. Когда я пробую любой "переписанный" URL (например, 10.0.150.4/user), я получаю сообщение "Не найдено".
Когда я заменяю свой IP псевдонимом (и помещаю его в свои хосты), все URL-адреса работают.
Вот мой 000-дефолт:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/g/www/paddle
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/g/www/paddle>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Причина, по которой это не сработало, заключается в том, что вы устанавливаете AllowOverride none
в вашем VHost с 000 по умолчанию. Это означает, что функция очистки URL-адресов в Drupal не будет работать, поскольку она зависит от .htaccess
файл. Просто измените эту строку на AllowOverride all
и все будет работать как чемпион.
Я думаю, вы запускаете Drupal из подкаталога своего веб-сайта (т. Е. http://127.0.0.1/
не является сайтом Drupal, но http://127.0.0.1/asdf
является «корнем» сайта Drupal). Если это так, вам нужно открыть .htaccess
файл, вы найдете строку, которая начинается RewriteBase
, который должен знать, каким должен быть "корневой" путь к Drupal.
Очевидно, мне пришлось отключить сайт 000 по умолчанию.