问题
我最近将 Drupal 网站从共享托管服务器迁移到我自己的 VM。一切似乎都正常工作,除了干净的 URL。
我的虚拟机设置
- Ubuntu 10.04
- 灯
- ISP配置 3
我尝试过的方法
通过阅读许多 Drupal 论坛,我按以下顺序尝试了以下操作
- 检查 mod_rewrite 是否已安装并启用
- 将 PHP 从 FastCGI 更改为 Mod_PHP(最好使用 FastCGI 或 suPHP,以避免 tmp/files 文件夹具有 777 权限)
- 在 ISPConfig Sites->domain.com->Redirect 中将重定向类型更改为 L
已更改 /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 中找到类似的内容