Php 在具有多个域名的服务器上,在htaccess中使用301重定向只影响一个域名
我有一个根目录中有3个目录的服务器,根目录中有3个目录的服务器是一个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保持不受影响
.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]