我在本地设置了 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>
答案1
我显然必须禁用 000-default 站点。
答案2
我认为您正在从网站的子目录运行 Drupal(即,http://127.0.0.1/
不是 Drupal 网站,而是http://127.0.0.1/asdf
Drupal 网站的“根”)。如果是这种情况,您需要打开文件.htaccess
,您将找到以 开头的行RewriteBase
,它需要知道 Drupal 的“根”路径应该是什么。
答案3
这不起作用的原因是您AllowOverride none
在 000-default VHost 中设置。这意味着 Drupal 中的清理 URL 功能将不起作用,因为它依赖于文件.htaccess
。只需将该行更改为AllowOverride all
,一切都会顺利运行。