【发布时间】:2021-03-08 20:49:17
【问题描述】:
我正在尝试使用 apache Web 服务器在 drupal 站点上配置重定向。我正在尝试实现这个https://www.symphonythemes.com/drupal-blog/remove-web-part-composer-based-drupal-site,但我似乎无法让它工作。我有几个在/var/www/html/drupal 中运行的drupal 站点。我的 httpd.conf 文件中的 drupal 配置是
- name: create drupal httpd conf
copy:
content: |
<VirtualHost *:80>
ServerName qsd
DocumentRoot /var/www/html/drupal
<Directory />
Options FollowSymlinks
AllowOverride All
</Directory>
</VirtualHost>
dest: /etc/httpd/conf.d/drupal.conf
和
- name: allow override /var/www/html
copy:
content: |
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
dest: /etc/httpd/conf.d/app.conf
我已经添加了
if ( isset($GLOBALS['request']) && '/web/index.php' === $GLOBALS['request']->server->get('SCRIPT_NAME') ) {
$GLOBALS['request']->server->set('SCRIPT_NAME', '/index.php');
}
到我的 settings.php。
现在我正在尝试让我的.htaccess 文件正确地用于/var/www/html/drupal/app 中的我的drupal 应用程序。在/var/www/html/drupal/app/.htaccess我有
<IfModule mod_rewrite.c>
RewriteEngine on
# Redirect to the subdirectory because that's where Drupal is installed
RewriteBase /app
RewriteRule (.*) web/$1 [L]
</IfModule>
在var/www/html/drupal/app/web/.htaccess我有
RewriteBase /web
当我访问 https://example.com/app 时,我被重定向到我的 OIDC 提供商,但 redirect_uri 缺少 /app。当我访问 https://example.com/app/user/login 时,我得到一个 404,但在添加 .htaccess 之前,https://example.com/app/web/user/login 正在工作。任何帮助将不胜感激,谢谢。
【问题讨论】:
-
如果您的网站在 web 目录中,
DocumentRoot /var/www/html/drupal不应该是DocumentRoot /var/www/html/drupal/web吗? -
有多个站点,这个站点在
/var/www/html/drupal/app,还有一个在/var/www/html/drupal/app2,等等。这样配置文档根目录是否正确? -
"there's multiple sites",你的意思是每个网站都有不同的网址吗?我认为您将为每个人都有一个虚拟主机,每个主机都有不同的文档根
标签: php apache .htaccess drupal drupal-8