如何在具有.htaccess的子域中对同一主机上托管的不同博客使用不同的域名

时间:2011-11-04 作者:phantom.omaga

我有一个在wordpress上运行的网站,它的所有文件都位于我主机的public\\u html中。在其中,我创建了一个子域“phantomomaga”,并将另一个域重定向到该子域,使其成为“www.phantomaga.tk”,而不是“phantomaga.my domain.com”,为此,我向添加了一些代码。htaccess of my public\\u html as tellhere 让它像follow一样

代码

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

#Fix missing trailing slash character on folders.
RewriteRule ^([^.?]+[^.?/])$ $1/ [R,L]

#www.phantomomaga.tk and phantomomaga.tk will map to the folder {root}/phantomomaga/
RewriteCond %{HTTP:Host} ^(?:www\\.)?phantomomaga\\.tk$
RewriteCond %{REQUEST_URI} !^/phantomomaga/
RewriteRule ^(.*) phantomomaga/$1 [NC,L,NS]
问题由于此编辑,我能够实现我想要的,但由于我不知道的某些原因,现在我的子域的永久链接不起作用,并且如果我删除根文件夹中的wordpress安装,我会不断收到找不到的错误

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress 
从。htaccess子域工作正常,但根域出错,所以我认为问题在于。htaccess的根域或子域,我无法找出解决方案,即使在我google了它,所以请帮助。

2 个回复
最合适的回答,由SO网友:phantom.omaga 整理而成

我自己找到了解决方案,现在我将其张贴在这里,以便其他人可以从中受益

这个我重复了我的整个密码。htaccess具有以下功能,并且工作正常

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# ---------------------------------------
# BEGIN Domain to folder mapping

# pointing phantomomaga.tk to phantomomaga
ReWriteCond %{HTTP_HOST} phantomomaga.tk
ReWriteCond %{REQUEST_URI} !phantomomaga/
ReWriteRule ^(.*)$ phantomomaga/$1 [L]

# END Domain to folder mapping
# ---------------------------------------

# ---------------------------------------
# BEGIN WordPress

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress
# ---------------------------------------

# ---------------------------------------
# BEGIN htaccess pretection

<Files .htaccess>
order allow,deny
deny from all
</Files>

# END htaccess pretection
# ---------------------------------------

</IfModule> 
您可以对多个域执行此操作,如follow

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# ---------------------------------------
# BEGIN Domain to folder mapping

# pointing domain_1.com to folder_1
ReWriteCond %{HTTP_HOST} domain_1.com
ReWriteCond %{REQUEST_URI} !folder_1/
ReWriteRule ^(.*)$ folder_1/$1 [L]

# pointing domain_2.com to folder_2
ReWriteCond %{HTTP_HOST} domain_2.com
ReWriteCond %{REQUEST_URI} !folder_2/
ReWriteRule ^(.*)$ folder_2/$1 [L]

# END Domain to folder mapping
# ---------------------------------------

# ---------------------------------------
# BEGIN WordPress

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress
# ---------------------------------------

# ---------------------------------------
# BEGIN htaccess pretection

<Files .htaccess>
order allow,deny
deny from all
</Files>

# END htaccess pretection
# ---------------------------------------

</IfModule> 
来源:=http://wordpress.org/support/topic/success-mapping-multiple-domains-to-different-folders-with-htaccess?replies=1#post-593544

SO网友:Chris_O

您需要一个重定向到public\\u html/sub\\u domain\\u文件夹的子域vhost,而不是尝试使用重定向。htaccess。然后可以在public\\u html/sub\\u domain\\u文件夹/中执行www重定向。htaccess。

在创建子域时,cpanel中应该有一些选项,如果您不能直接访问vhost,请指定它指向哪个文件夹。

结束

相关推荐

WP_REDIRECT在标题中不起作用,退出正在中断页面

很抱歉问这么一个基本的问题,我已经看了其他问题,没有找到答案。我已经定制了一些公共页面,它们有自己的标题public。我正在页面的开头(header.php中的第1行)对所有其他页面进行基本的登录检查。其目的是将未标记的用户重定向到接收页面,在那里他们可以获得帮助、登录等。只是a)它不会重定向,b)添加“退出;”按照建议,也会打断页面的其余部分。我尝试将其抽象为函数中的函数。php和它破坏了函数。php,所以现在Idunnowhatsgoingon。代码如下:if (is_user_logged_in()