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
Apache htaccess:exluce某个域处于重写状态_Apache_.htaccess - Fatal编程技术网

Apache htaccess:exluce某个域处于重写状态

Apache htaccess:exluce某个域处于重写状态,apache,.htaccess,Apache,.htaccess,这是我的.htaccess代码 因此,如果用户类型仅为domain.com,则将重定向到www.domain.com RewriteBase / RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC] RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301] 我现在的问题是,我有一个指向同一个域路径的新域 因此,即使是新域也会“透明地”重定向到domain.com 如何从该规则中排除某些域名 谢谢 您可以

这是我的.htaccess代码 因此,如果用户类型仅为domain.com,则将重定向到www.domain.com

RewriteBase /
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
我现在的问题是,我有一个指向同一个域路径的新域 因此,即使是新域也会“透明地”重定向到domain.com

如何从该规则中排除某些域名


谢谢

您可以尝试将重写设置为通用,这样所有不是以
www
开头的请求都会被重定向,而是在正确的/请求的域上

RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]
或者,您可以检查域是否以
domain.com
开头:

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

希望这能有所帮助。

谢谢你的回答。你能一部分一部分地描述代码吗?第一个密码,回答得很好。详细解释您的语法将使这成为一个极好的答案。只是说说而已。:)OP试图将多个域重定向到同一路径,但是原始的
RewriteCond
专门查找单个域(例如www.domain.com)。我的第一个例子是,将任何不以
www.
开头的域重定向到带有
www.
前缀的请求路径。
RewriteRule
通过使用
RewriteCond
中正则表达式的第一个组来实现这一点,这就是
%1
实现的
$
用于引用
重写规则
表达式的组,而
%
用于引用
重写条件
的组。希望这能澄清问题。
[NC]
是什么意思?