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
Php 在具有多个域名的服务器上,在htaccess中使用301重定向只影响一个域名_Php_.htaccess_Redirect_Mod Rewrite_Https - Fatal编程技术网

Php 在具有多个域名的服务器上,在htaccess中使用301重定向只影响一个域名

Php 在具有多个域名的服务器上,在htaccess中使用301重定向只影响一个域名,php,.htaccess,redirect,mod-rewrite,https,Php,.htaccess,Redirect,Mod Rewrite,Https,我有一个根目录中有3个目录的服务器,根目录中有3个目录的服务器是一个.htaccess文件。每个目录指向一个单独的域名 directoryA=examplea.com directoryB=xampleb.com directoryC=examplec.com 我希望在根目录中的.htaccess文件中有301重定向代码,以便xamplea.com中的所有文件重定向到https://xamplea.com带有: xampleb.com不受影响 及 xamplec.com保持不受影响

我有一个根目录中有3个目录的服务器,根目录中有3个目录的服务器是一个
.htaccess
文件。每个目录指向一个单独的域名

  • directoryA
    =
    examplea.com
  • directoryB
    =
    xampleb.com
  • directoryC
    =
    examplec.com
我希望在根目录中的
.htaccess
文件中有301重定向代码,以便
xamplea.com
中的所有文件重定向到
https://xamplea.com
带有:

  • xampleb.com
    不受影响

  • xamplec.com
    保持不受影响
我试过:

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond xamplea.com ^www\. [NC]
RewriteRule ^ https://xamplea.com%{REQUEST_URI} [R=301,L,NE]

但是上面的代码也将
xampleb.com
xamplec.com
重定向到
https://xamplea.com
当我只想
examplea.com
被重定向到
https://xamplea.com

删除
重写条件%{HTTPS}关闭[OR]中的
[或]
因为您希望这两个条件都为真,以便重定向。另外,您的第二个条件无效,您可能需要检查域名

这将给你:

RewriteEngine On 
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} xamplea\.com [NC] 
RewriteRule (.*) xamplea.com%{REQUEST_URI} [R=301,L,NE]

“第三行也不行。”-事实上,第三行还可以。这与您的行不同,但结果是相同的。Olivier提出的代码在访问xampleb.com或xamplec.com时会导致内部服务器错误。我不知道为什么在第二种情况下com后会出现$?@P.Pei检查您的错误日志以了解内部服务器错误的详细信息。“访问xampleb.com时”-您是指访问域
xampleb.com
(如
http://xampleb.com/
)或仅子目录
xampleb.com
(在其他域上)?“访问xampleb.com时”是指我在浏览器中键入http:/xampleb.com以查看是否重定向到https:/xamplea.com,这是我不想要的,或者留在http:/xampleb.com上,这是我想要的。答案是将Olivier的代码修改为:
RewriteEngine on RewriteCond%{HTTPS}off RewriteCond%{http\u HOST}xamplea\.com[NC]RewriteRule(.*)xamplea.com%{REQUEST\u URI}[R=301,L,NE]