使用 IP 时,Apache mod 重写模块不起作用

使用 IP 时,Apache mod 重写模块不起作用

我在本地设置了 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/asdfDrupal 网站的“根”)。如果是这种情况,您需要打开文件.htaccess,您将找到以 开头的行RewriteBase,它需要知道 Drupal 的“根”路径应该是什么。

答案3

这不起作用的原因是您AllowOverride none在 000-default VHost 中设置。这意味着 Drupal 中的清理 URL 功能将不起作用,因为它依赖于文件.htaccess。只需将该行更改为AllowOverride all,一切都会顺利运行。

相关内容