PHP:根据域名更改文档根目录

时间:2015-08-05 07:24:38

标签: php wordpress .htaccess document-root

您好我想将几个域指向我的一个服务器,其中包含一些简单的wordpress示例站点。我想根据域名显示网站。有什么办法可以使用PHP更改文档根目录吗?我设法使用下面的代码,但问题是所有域只到wp_domain1文件夹。

如果可能,我想使用PHP,这样我就可以轻松添加更多域名。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain1.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.domain1com$
RewriteCond %{REQUEST_URI} !wp_domain1/
RewriteRule (.*) /wp_domain1/$1 [L]
RewriteCond %{HTTP_HOST} ^domain2.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.domain2.com$
RewriteCond %{REQUEST_URI} !wp_domain2/
RewriteRule (.*) /wp_domain2/$1 [L]

1 个答案:

答案 0 :(得分:0)

首先,我想通过使用vhosts并手动创建vhosts或者自动识别文件夹并监听域名,来建议只遵循Jigar的选项。

如果您不想这样做而且您只是安装wordpress。查看Wordpress构建方式以安装多个站点/域。 https://codex.wordpress.org/Create_A_Network

如果您仍想创建PHP代码来为您编写.htaccess文件,可以使用此文件。

<?php
$domains = array("domain1.com" => "wp_domain1", "domain2.com" => "wp_domain2");

$fileName = "/path/to/your/.htaccess";

touch($fileName);
$file = fopen($fileName, 'w');

fwrite($file, "RewriteEngine On");
foreach($domains as $domain => $folder) {

    fwrite($file, "
RewriteCond %{HTTP_HOST} ^". $domain ."$ [NC]
RewriteCond %{REQUEST_URI} !". $folder ."/ [NC]
RewriteRule ^(.*)$ /". $folder ."/$1 [L]");
}

fclose($file);
?>

这将创建一个.htaccess文件,如下所示。这对我来说可以将子域映射到文件夹,而不会在URL中显示文件夹。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain1.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.domain1.com$
RewriteCond %{REQUEST_URI} !wp_domain1/
RewriteRule (.*) /wp_domain1/$1 [L]
RewriteCond %{HTTP_HOST} ^domain2.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.domain2.com$
RewriteCond %{REQUEST_URI} !wp_domain2/
RewriteRule (.*) /wp_domain2/$1 [L]