我在一个专用的CentOS 5.6服务器上托pipe4个虚拟主机:
# rpm -qa|grep http httpd-2.2.3-45.el5.centos.1
其中一个是我的Drupal 7.2站点,另一个是持有属于我妻子的静态文本和照片 – 这里是httpd.conf的摘录:
<VirtualHost 85.214.19.116:80> DocumentRoot /var/www/html/preferans.de ServerName preferans.de ServerAlias preferans.de *.preferans.de ErrorLog logs/preferans.de/error_log CustomLog logs/preferans.de/access_log common <IfModule mod_rewrite.c> <Directory "/var/www/html/preferans.de"> RewriteEngine on # needed by Drupal 7 for "clean URLs" RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !=/favicon.ico RewriteRule ^ index.php [L] </Directory> </IfModule> </VirtualHost> <VirtualHost 85.214.19.116:80> DocumentRoot /var/www/html/larissa-farber.de ServerName larissa-farber.de ServerAlias larissa-farber.de *.larissa-farber.de ErrorLog logs/larissa-farber.de/error_log CustomLog logs/larissa-farber.de/access_log common </VirtualHost>
现在,我的妻子已经决定把她的文件移动到Tumblr博客服务。
作为一个快速措施,我把下面的index.php放到她的目录中:
# cat /var/www/html/larissa-farber.de/index.php <?php header('Location: http://larissa-farber.tumblr.com/'); ?>
这工作正常,但我宁愿使用mod_rewrite做redirect(即 – 直到我弄清楚如何将她的url完全转移到Tumblr,这也应该是可能的)。
从阅读文档我明白,我需要的东西,如:
RewriteRule ^(.*)$ http://larissa-farber.tumblr.com/$1 [R=301,L]
但是把它放在哪里,以及如何让我的其他3个虚拟网站工作?
谢谢! 亚历克斯
(这不是上述任何网站的推广,我懒得在这里使用虚假的地址,没有看到原因)。
你不需要mod_rewrite
这样简单的redirect。 使用mod_alias
Redirect指令。
将以下内容放入ServerName larissa-farber.de
VirtualHost
部分中:
Redirect permanent / http://larissa-farber.tumblr.com/
你的drupal站点的虚拟主机指令已经有了一个mod_rewrite部分,只是在你的其他站点的虚拟主机中复制了这个结构。 或者,您可以将mod_rewrite内容放置在要redirect的特定虚拟主机的Web根目录中的.htaccess文件中。