过去几个小时我一直试图解决问题。我迫切需要帮助!
我有两个域名:
rd1.example.com/drupal
rd2.example.com
我在rd1.example.com/drupal /
中安装了drupal此外,我开始在url别名中创建drupal上的内容:rd1.example.com/drupal/rd2 /
我想要做的是使用第二个网站指向我的drupal安装中的特定内容:
rd2.example.com -> rd1.example.com/drupal/rd2/
我不希望它是重定向,而是内部隐藏重定向。用户会认为他们在rd2.example.com上。
我已将rd2.example.com切换为指向安装drupal的目录。我一直试图在drupal的.htaccess上编辑rewriterules,但没有运气。任何帮助是极大的赞赏。到目前为止,这是我的规则:
#Existing settings
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} !^rd2\.example\.com [NC]
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]
#New rules to accomodate for rd2.example.com
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} ^rd2\.example\.com$ [NC]
RewriteCond %{DOCUMENT_ROOT}/rd2%{REQUEST_URI} -f
RewriteRule .* /rd2/$0 [L]
答案 0 :(得分:1)
Drupal依赖服务器变量来处理其请求。这意味着当你在内部重写/rd2/$0
时,drupal不知道如何处理它。您需要从rd2`子域反向代理*。所以保持drupal的方式,然后在rd2.example.com文档根目录,添加:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^rd2 [NC]
RewriteRule ^(.*)$ http://rd1.example.com/drupal/rd2/$1 [L,P]
只有在服务器上加载mod_proxy时才会有效,否则什么也不会发生。 Mod_proxy只能通过服务器的配置打开。您还可以从vdad配置中为rd2子域设置反向代理:
ProxyPass / http://rd1.example.com/drupal/rd2/
答案 1 :(得分:0)
除了代理之外,您还可以考虑使用shell命令生成的符号链接,如下所示:
ln -s /path/to/rd1 /path/to/drupal/rd2
中说明