一台服务器上的多个域和多个URL重写规则htaccess

时间:2014-07-03 13:00:39

标签: wordpress .htaccess url-rewriting multiple-domains

我有两个wordpress网站位于同一主机帐户,它们各自位于自己的子目录中,并拥有自己的数据库。

-root

- SITE1

- site2

网站1有3个域名 site1.dk site1.eu site1.org

网站2有1个域名 site2.com

我想将site1.dk,site1.eu,site1.org指向子文件夹site1。并且site2.com在子目录site2中。

另外,我想删除子文件夹名称site1 / 2

我在root

中使用以下htaccess解决了site1问题
RewriteEngine On
RewriteCond %{HTTP_HOST} ^site1\.dk$ [NC]
RewriteRule ^site1/(.*)$ http://www.site1.dk/site1$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^www.site1 \.dk$ [NC]
RewriteRule ^site1/(.*)$ http://www.site1.dk/site1/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^site1\.eu$ [NC]
RewriteRule ^site1/(.*)$ http://www.site1.dk/site1$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^www.site1\.eu$ [NC]
RewriteRule ^site1/(.*)$ http://www.site1.dk/site1/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^site1\.org$ [NC]
RewriteRule ^site1/(.*)$ http://www.site1.dk/site1$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^www.site1\.org$ [NC]
RewriteRule ^site1/(.*)$ http://www.site1.dk/site1/$1 [L,R=301]

RewriteRule ^$ site1/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ site1/$1 

以上所有网址都进入了site1子文件夹,网址看起来像这个site1.dk。做完了!

但是如果我将它添加到root htaccess

RewriteCond %{HTTP_HOST} ^site2\.org$ [NC]
RewriteRule ^site2/(.*)$ http://www.site2.dk/site1$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^www.site2\.org$ [NC]
RewriteRule ^site2/(.*)$ http://www.site2.dk/site2/$1 [L,R=301]

RewriteRule ^$ site2/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ site2/$1 

一切都崩溃了。

我对htaccess和url重写并不熟悉,可以使用一些帮助。

提前致谢

/ / Kasper

1 个答案:

答案 0 :(得分:0)

我认为您希望使用virtual host而不是.htaccess执行此操作。根据服务器的设置方式,您可能需要直接编辑apache/conf/extra/httpd-vhosts.conf或使用cPanel / Plesk / WHM中的抽象层或类似的东西。

在上面的示例中,您的根文件夹中不需要.htaccess个文件。如果您的主机设置正确,则访问者无法访问该主机。