如何将根域重定向到子文件夹(使用HTTPS),将其他其他插件域重定向到子文件夹(不使用HTTPS)。
目前我在root中有.htaccess
,使用HTTPS重定向到the-main-subfolder
确定。但我的其他插件域名domain2
也会被重定向到the-main-subfolder
。
我想将domain2
重定向到the-domain2-subfolder
而不使用HTTPS 。
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RedirectMatch ^/$ /the-main-subfolder/
我不确定这段代码是否正确,因为它可能是我使用通配符。我从网上搜索得到了这个代码,但有很多建议我现在很困惑!
总结:当用户在浏览器中的domain1.co.uk中输入并且我的插件域https://www.domain1.co.uk/the-main-subfolder应该转到{@ 3}}时,我在root中的主要主机帐户应该转到http://domain2.co.uk http://www.domain2.co.uk/the-domain2-subfolder
答案 0 :(得分:0)
您可以使用其他RewriteCond
来定义特定的重定向:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^example.org$
RewriteRule ^ https://%{HTTP_HOST}/the-main-subfolder%{REQUEST_URI} [L,R=301,QSA]
RewriteCond %{HTTP_HOST} ^example1\.org$
RedirectRule ^(.*)$ /example1\.org-subfolder/$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^example2\.org$
RedirectRule ^(.*)$ /example2\.org-subfolder/$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^host1\.example\.org$
RedirectRule ^(.*)$ /host1\.example\.org-subfolder/$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^host2\.example\.org$
RedirectRule ^(.*)$ /host2\.example\.org-subfolder/$1 [L,QSA]
我添加了一些示例来演示显式实现的可重复性,并且您可以为单独的域和主机名执行此操作(有时会错误地调用"子域")。我总是喜欢这种明确的符号而不是泛型方法,因为你可以单独修改内容,例如用于测试或调试目的。除非您明显处于大规模托管状态,否则基于数据库的方法是有意义的。
请注意,您所谓的"根域"的重定向(example.org
此处)现在有第二个RewriteCond
。这两个条件都是AND
- 默认组合。
为了安全起见,您可能还需要添加一些规则来将请求重定向到特定域名的https://example.org/host1.example.org-subfolder
之类的内容,因为根据您的描述,您只能使用托管帐户中的单个文件树。同样请求http://test1.example.org/test1.example.org-subfolder/...
以消除文字文件夹名称。
哦,还有一个警告:上面的语法仅适用于.htaccess
样式文件。如果您有权访问真正的主机配置,则始终更愿意将此类规则放在那里。但是,您需要稍微改变一下语法。 .htaccess
样式规则非常容易出错,难以调试,它们确实会降低http服务器的速度。它们仅作为无权访问主机配置的最后选项提供。
答案 1 :(得分:0)
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^domain1.co.uk$
RewriteRule ^ https://%{HTTP_HOST}/the-main-subfolder%{REQUEST_URI} [L,R=301,QSA]
谢谢@arkascha - 上面的代码现在一切正常。我想我们根本不需要在这里提到所谓的附加域,因为当我们在托管包(即插件域)上添加后续域时,cPanel会在内部处理它们的子目录!
答案 2 :(得分:0)
只是为了更新我之前的解决方案部分工作,因为它几乎没有琐事/错误。所以回到绘图板突然意识到我不必要地太努力了!
先删除旧的htaccess文件,然后按照以下说明操作..
解决方案已由cPanel在面板图标中称为“重定向”的内容中提供。
我只需输入用户界面文本框中的所有内容,例如选择domainname =“domain1”,旧文件夹=“\”,新文件夹=“https://www.domain1.co.uk/the-main-subfolder” - 然后只需点击创建重定向即可。这样做会自动创建一个.htaccess文件。我在下面分享这个:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain1\.co\.uk$ [OR]
RewriteCond %{HTTP_HOST} ^www\.domain1\.co\.uk$
RewriteRule ^/?$ "https\:\/\/www\.domain1\.co\.uk\/the-main-subfolder\/" [R=301,L]