Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 是否可以使用单独的域别名&;重定向取决于子目录?_.htaccess_Redirect_Dns_Domain Aliasing - Fatal编程技术网

.htaccess 是否可以使用单独的域别名&;重定向取决于子目录?

.htaccess 是否可以使用单独的域别名&;重定向取决于子目录?,.htaccess,redirect,dns,domain-aliasing,.htaccess,Redirect,Dns,Domain Aliasing,我需要根据域名是否在子目录中设置域名的别名/重定向 newdomain.com是parent.com/newdomain的别名。这在主机控制面板中设置为别名,并且正在工作 我需要url根据文件的不同而不同,例如 newdomain.com中的文件应在位置栏中显示为 parent.com/newdomain/filename.php 位置栏中应显示newdomain.com中的子目录 作为newdomain.com/subdir/filename.php 我可以使用htaccess来控制重定向

我需要根据域名是否在子目录中设置域名的别名/重定向

newdomain.com
parent.com/newdomain
的别名。这在主机控制面板中设置为别名,并且正在工作

我需要url根据文件的不同而不同,例如

  • newdomain.com
    中的文件应在位置栏中显示为
    parent.com/newdomain/filename.php
  • 位置栏中应显示
    newdomain.com
    中的子目录 作为
    newdomain.com/subdir/filename.php
我可以使用htaccess来控制重定向,但我还没有找到控制别名的方法。
这可能吗?谢谢

我的回答基于这样一个假设,即
newdomain.com
parent.com
是从同一个Apache进程提供服务的

将此代码放入
newdomain.com的
文档根目录下的
.htaccess

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(www\.)?newdomain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/+subdir/ [NC]
RewriteRule ^ http://parent.com/newdomain%{REQUEST_URI} [L,R=302,NC]

一旦您确认它工作正常,请将
R=302
更改为
R=301

谢谢@anubhava的回复。目前,newdomain.com只是一个别名,没有为其设置主机。设置主机是我在位置栏中使用不同别名的唯一方法吗?我相信您不需要为
newdomain.com
设置主机。只需启用
mod_rewrite
.htaccess
,并将上述代码放入
parent.com
$DOCUMENT\u ROOT
目录中。当你上面说“将.htaccess放入newdomain.com的根目录”时,我以为你的意思是我需要托管-我想你是说parent.com?我以前在parent.com上尝试过htaccess,但它不起作用,但我会试试你的。谢谢