You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Drupal 8与其他网站共存?解决Cacti安装重定向问题

Drupal与Cacti共存的重定向问题解决

为什么删除.htaccess后问题仍存在?

删除Drupal根目录的.htaccess并不一定能立刻生效,原因可能有这几个:

  • Apache已经加载了旧的.htaccess配置,未实时刷新
  • Drupal自身缓存了路由规则,还在按旧逻辑处理请求
  • 浏览器缓存了之前的重定向响应
  • 虚拟主机配置里有全局的重写规则覆盖了.htaccess的变化

具体解决步骤

  • 重启Apache服务
    Apache会缓存.htaccess的配置,删除后必须重启让新配置生效,用对应系统的命令:

    # Debian/Ubuntu系列
    sudo systemctl restart apache2
    # CentOS/RHEL系列
    sudo service httpd restart
    
  • 清理Drupal的路由缓存
    Drupal会把路由规则缓存起来,即使.htaccess删了,内部路由逻辑还在生效。可以用两种方式清理:

    • 用Drush命令:drush cache:rebuild
    • 无Drush的话,手动删除sites/default/files/php/cache下的所有缓存文件,或者登录Drupal后台,到「配置」→「性能」页面点击「清除所有缓存」
  • 修改Apache虚拟主机配置
    很多时候虚拟主机里会全局配置重写规则,把所有非文件/目录的请求导向Drupal的index.php。需要给Cacti目录加例外:
    打开你的虚拟主机配置文件(比如/etc/apache2/sites-available/foo.bar.conf或/etc/httpd/conf.d/foo.bar.conf),找到类似下面的重写规则:

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^ index.php [L]
    

    修改成:

    RewriteEngine On
    # 排除Cacti目录的请求
    RewriteCond %{REQUEST_URI} !^/cacti/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^ index.php [L]
    

    修改后记得重启Apache。

  • 强制刷新浏览器或用隐私模式访问
    浏览器可能缓存了之前的301/302重定向,导致服务器端改了还跳。按Ctrl+Shift+R强制刷新页面,或者用无痕/隐私模式打开https://www.foo.bar/cacti/install。

  • 检查Cacti自身的.htaccess
    偶尔也可能是Cacti安装目录里的.htaccess搞的鬼,看看/var/www/html/cacti/install下有没有.htaccess文件,如果有且里面有重写规则,暂时重命名或删除试试。


内容的提问来源于stack exchange,提问作者Jon Weinraub

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 13:08:27