我有一个多域配置的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/*.php
或chiname.com/marketing/*.php
时,它需要显示而不重定向到https://www.greatwall.com
,并且关于chiname.com
的每个其他路径需要重定向到https://www.greatwall.com
。
当我从https://www.greatwall.com/
访问任何/landing
或/marketing
文件夹时,我的上面总是会重定向到chiname.com
而不管我的rewriteCond。
注意我没有服务器级权限,因此我无权访问VirtualHost .conf文件。
可以说,最好在主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测试了它,所以它应该工作。