Я установил веб-сайт Drupal в этом пути:
/var/www/html/testdrupal.localhost/public_html/drupal/web
Ниже я показываю виртуальный конфигурационный файл хоста testdrupal.localhost:
<Directory /var/www/html/testdrupal.localhost>
Require all granted
</Directory>
<VirtualHost *:80>
ServerName testdrupal.localhost
ServerAlias www.testdrupal.localhost
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/testdrupal.localhost/public_html/drupal/web
ErrorLog /var/www/html/testdrupal.localhost/logs/error.log
CustomLog /var/www/html/testdrupal.localhost/logs/access.log combined
</VirtualHost>
Когда я получаю доступ к URL www.testdrupal.localhost, я правильно вижу начальную страницу Drupal, но когда я нажимаю на ссылку входа в систему, я получаю 404 ошибки.
URL, показанный на строке поиска браузера:
http://www.testdrupal.localhost/drupal/web/user/login
Я также проверил что:
URL РАБОТЫ http://www.testdrupal.localhost/index.php/user/login
URL http://www.testdrupal.localhost/user/login не ДЕЛАЕТ РАБОТ
Мог бы немного старый, и Вы, вероятно, зафиксировали это, но я отправлю ответ так, чтобы он мог бы помочь другим.
<VirtualHost *:80>
DocumentRoot /var/www/html/my_project/docroot
ServerName ${alias}
ServerAlias ${alias}
<Directory /var/www/html/my_project/docroot>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
${alias} = is the name you wrote in the hosts file, next to the IP address of localhost
Я столкнулся с той же проблемой. После нескольких дней проб и ошибок я нашел решение.
Мне пришлось изменить расположение index.php
в файле .htaccess
, как это было упомянуто в совете Drupal
Старая настройка:
# Pass all requests not referring directly to files in the filesystem to
# index.php.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]
Новая настройка:
# Pass all requests not referring directly to files in the filesystem to
# index.php.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ /drupal/index.php [L]