问题

问题

问题

我最近将 Drupal 网站从共享托管服务器迁移到我自己的 VM。一切似乎都正常工作,除了干净的 URL。

我的虚拟机设置

  • Ubuntu 10.04
  • ISP配置 3

我尝试过的方法

通过阅读许多 Drupal 论坛,我按以下顺序尝试了以下操作

  1. 检查 mod_rewrite 是否已安装并启用
  2. 将 PHP 从 FastCGI 更改为 Mod_PHP(最好使用 FastCGI 或 suPHP,以避免 tmp/files 文件夹具有 777 权限)
  3. 在 ISPConfig Sites->domain.com->Redirect 中将重定向类型更改为 L
  4. 已更改 /etc/apache2/sites-enabled/000-default

    <Directory /var/www/> 
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        ...
    </Directory>
    

我不确定第 3 点和第 4 点,但我确实想要全部域能够开箱即用地使用 mod_rewrite。

问题

我做错了什么还是错过了一步?最终,我想使用 FastCGI 并清理所有 ISPConfig 3 域上的 URL,而无需对单个域设置进行任何更改。

任何想法都值得赞赏,我会尝试所有想法。

答案1

ISPConfig 3 手册说:

快速CGI:

优点:

  • 脚本将以网站的用户权限执行;
  • 多个 PHP 版本可以作为 FastCGI 运行;
  • 与 CGI 和 suPHP 相比,速度可能更快。

缺点:

  • php.ini 值无法通过 PHP 脚本、vhost 文件、.htaccess 文件更改。但可以使用自定义 php.ini 设置字段上的选项ISPConfig 中网站的选项卡用于指定自定义 php.ini 设置(参见第 4.6.1.1 章)。

相反,.htaccess 文件使用 ISPConfig 的 Apache 指令:

站点 -> 网站 -> Web 域 -> 选项选项卡

Apache 指令:

目录索引 index.php

RewriteEngine 开启
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
重写规则 ^(.*)$ /index.php?q=$1 [L,QSA]

Drupal 6 INSTALL.txt 说:

如果默认 Drupal 主题显示不正确,并且页面上的链接导致“页面未找到”错误,请尝试手动设置 settings.php 文件中的 $base_url 变量(如果尚未设置)。目前已知,如果 $base_url 变量被注释掉,运行 FastCGI 的服务器可能会遇到问题(请参阅http://bugs.php.net/bug.php?id=19656)。

答案2

ISPConfig 中的重定向选项卡仅用于域重定向,而不用于特定于应用程序的重定向,例如 Drupal。

您是否检查过 .htaccess 文件是否被识别为指令?

你应该在全球 apache2 conf 中找到类似的内容

相关内容