Redirect 带有子域的htaccess掩码url

Redirect 带有子域的htaccess掩码url,redirect,masking,subdomain,Redirect,Masking,Subdomain,我想用子域屏蔽url路径。 例子: “auto.domain.com”应重定向到“domain.com/auto” 然后,如果按下菜单,子域应保持不变 例子: “auto.domain.com/busses”,而不转到“domain.com/auto/busses” 我已通过以下方式管理重定向: RewriteCond %{HTTP_HOST} !www\. [NC] RewriteCond %{HTTP_HOST} ^([^\.]+)\.domain\.com [NC] RewriteRul

我想用子域屏蔽url路径。 例子: “auto.domain.com”应重定向到“domain.com/auto”

然后,如果按下菜单,子域应保持不变 例子: “auto.domain.com/busses”,而不转到“domain.com/auto/busses”

我已通过以下方式管理重定向:

RewriteCond %{HTTP_HOST} !www\. [NC]
RewriteCond %{HTTP_HOST} ^([^\.]+)\.domain\.com  [NC]
RewriteRule .*  http://domain.com/%1     [L,R=302]
但这只是重定向,而不是屏蔽

domain.com和subdomain.com都指向同一个文档根。 当你去一个或另一个没有任何重写域或子域仍然在链接。 问题是,子域不应转到domain.com,而应转到domain.com/auto。(auto不是文件夹,它是cms的别名)

可能:

RewriteEngine on

RewriteCond %{REMOTE_HOST} ^subdomain.* [NC]
RewriteRule ^(.*)$ ^subdomain/ [L]
替换子域上的“子域”

可能:

RewriteEngine on

RewriteCond %{REMOTE_HOST} ^subdomain.* [NC]
RewriteRule ^(.*)$ ^subdomain/ [L]
替换子域上的“子域”

确定尝试以下规则:

RewriteEngine on

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{HTTP_HOST} ^((?!www)[^.]+)\.
RewriteRule ^ /%1%{REQUEST_URI} [L,NC]
确保这是您的第一条规则。

确定尝试以下规则:

RewriteEngine on

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{HTTP_HOST} ^((?!www)[^.]+)\.
RewriteRule ^ /%1%{REQUEST_URI} [L,NC]

确保这是您的第一条规则。

由于htaccess不是我的强项,我做了一个php头重定向:

$domain = $_SERVER["SERVER_NAME"];
$requri = $_SERVER['REQUEST_URI'];

if (($domain == "subdomain.domain.com") && $requri == "/" ||
($domain == "www.subdomain.domain.com")) { 
header("Status: 301 Moved Permanently");
header("Location: http://domain.com/subdomain"); 
}

此解决方案的工作方式与预期的一样,除了一些文件提交问题,需要对子域进行一些额外调整。

由于htaccess不是我的强项,我做了一个php头重定向:

$domain = $_SERVER["SERVER_NAME"];
$requri = $_SERVER['REQUEST_URI'];

if (($domain == "subdomain.domain.com") && $requri == "/" ||
($domain == "www.subdomain.domain.com")) { 
header("Status: 301 Moved Permanently");
header("Location: http://domain.com/subdomain"); 
}


此解决方案的工作原理与预期相同,除了一些文件提交问题需要对子域进行一些额外调整。

将[L,R=302]更改为[L,R=302,p]子域保留,但链接将转到原始路径,而不带
R
标志:
重写规则。*http://domain.com/%1 [L,P]
auto.domain.com
domain.com
都在同一主机上并且指向相同的
文档根
?是的,它们都指向相同的文档根将[L,R=302]更改为[L,R=302,P]子域保留,但链接将转到原始路径,而不带
R
标志:
RewriteRule.*http://domain.com/%1 [L,P]
auto.domain.com
domain.com
都在同一主机上,并且指向相同的
文档根
?是的,它们都指向相同的文档根这与Lexd5建议的操作相同。将域屏蔽到subdomain.domain.com,但不执行重定向。您尝试的完整URL是什么,上面的位置是什么。htaccess?domain.com和subdomain.domain.com都指向httpdocs和。htaccess在httpdocs中。这是唯一的.htaccess还是您还有任何其他.htaccess?当前.htaccess中还有其他规则吗?它是唯一的htaccess。唯一的规则是RewriteRule.*index.php。我试着只听你的建议,但还是没有结果。这和Lexd5的建议是一样的。将域屏蔽到subdomain.domain.com,但不执行重定向。您尝试的完整URL是什么,上面的位置是什么。htaccess?domain.com和subdomain.domain.com都指向httpdocs和。htaccess在httpdocs中。这是唯一的.htaccess还是您还有任何其他.htaccess?当前.htaccess中还有其他规则吗?它是唯一的htaccess。唯一的规则是RewriteRule.*index.php。我试着只听你的建议,但仍然没有结果。这实际上没有任何作用。这实际上没有任何作用。