我不知道您是否还需要帮助,但我花了很多时间试图自己解决这个问题,但找不到正确的答案。在做了很多试验和错误之后,我让它工作了。我不确切知道您的设置如何,但这是我的设置,以及我在drupal.org上的解决方案。
(这是我原始问题的一部分和我的完整解决方案的副本)
你好,
我有一个 Drupal 多站点设置,我正在尝试使 Clean URL 工作,但似乎无法正确编写条件和规则。我找到了很多答案,但没有一个有效。
我的 .htaccess 文件正在被毫无问题地读取,并且正在使用规则(我尝试将重写规则设置为完整地址,但它只给了我主页,我无法去其他任何地方)。
这是它的设置方式:
开发: URL1 www.site1.domain.fr/dev
URL2 www.site2.site1.domain.fr/dev
产品 URL1 www.site1.domain.fr
URL2 www.site2.site1.domain.fr
在服务器上:/dev(一个drupal 安装)
/prod(另一个drupal 安装但内容相同)
我的多站点设置如下:
/sites/site1.domain.fr
/sites/site2.site1.domain.fr (开发和产品相同)
在sites.php里面:
$sites = array(
'www.site1.domain.fr' => 'site1.domain.fr',
'www.site2.site1.domain.fr' => 'site2.site1.domain.fr', )
解决方案
我终于能够通过反复试验来修复它。如果你们中的任何人遇到同样的问题,我是这样解决的:
DEV:
RewriteBase /dev
# Main site
RewriteCond %{HTTP_HOST} ^site1\.domain\.fr [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ site1.domain.fr/dev/index.php?q=$1 [L,QSA]
# Site 2
RewriteCond %{HTTP_HOST} ^site2.site1\.domain\.fr [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ site2.site1.domain.fr/dev/index.php?q=$1 [L,QSA]
PROD:
RewriteBase /
# Main site
RewriteCond %{HTTP_HOST} ^site1\.domain\.fr [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ site1.domain.fr/index.php?q=$1 [L,QSA]
# Site 2
RewriteCond %{HTTP_HOST} ^site2.site1\.domain\.fr [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ site2.site1.domain.fr/index.php?q=$1 [L,QSA]