Htaccess多域,但重定向除特定路径之外的一个域

问题描述 投票:0回答:1

我有一个多域配置的htaccess,这意味着根据输入的域名,显示依赖内容并重定向到任何域的https版本

我在我的.htaccess中尝试过的一小部分内容

RewriteEngine on
RewriteCond %{HTTP_HOST} ^arabme.com$ [NC]
RewriteRule ^(.*)$ https://www.arabme.com$1 [R=301,L]

RewriteEngine on
RewriteCond %{HTTP_HOST} ^chiname.com$ [NC]
RewriteCond %{REQUEST_URI} !^/(landing|marketing)
RewriteRule ^(.*)$ https://www.greatwall.com$1 [R=301,L]

但在chiname.com我想将所有重定向到http://www.greatwall.com除了两个文件夹。 /landing/marketing

因此,每当用户输入chiname.com/landing/*.phpchiname.com/marketing/*.php时,它需要显示而不重定向到https://www.greatwall.com,并且关于chiname.com的每个其他路径需要重定向到https://www.greatwall.com

当我从https://www.greatwall.com/访问任何/landing/marketing文件夹时,我的上面总是会重定向到chiname.com而不管我的rewriteCond。

注意我没有服务器级权限,因此我无权访问VirtualHost .conf文件。

php apache .htaccess
1个回答
1
投票

可以说,最好在主httpd-vhosts.conf文件中的<VirtualHost>指令中执行此操作 - 但由于这不是一个选项:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^arabme.com$ [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.arabme.com/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^chiname.com$ [NC]
RewriteCond %{REQUEST_URI} !^/(landing|marketing)
RewriteRule ^(.*)$ https://www.greatwall.com/$1 [R=301,L]

假设您的.htaccess文件位于文档根目录,您只有几个错误:

1:你不需要重复RewriteEngine On

2:你在/的greatwall.com之后错过了一个RewriteRule,这意味着重定向会转到https://www.greatwall.comwhatever而不是https://www.greatwall.com/whatever


我在htaccess.madewithlove.be测试了它,所以它应该工作。

© www.soinside.com 2019 - 2024. All rights reserved.