繁体   English   中英

如何使用 htaccess 将 url 重定向到动态子域?

[英]How to redirect urls to dynamic subdomain using htaccess?

首先,我想问一下如何使用htaccess进行子域重定向。 www.samcheck.com/www/google.com 到 google.com.samcheck.com

我已经尝试了 stackoverflow 上所有可用的解决方案。但没有一个解决方案对我有用。

除了 URL 是https://sampcheck.com/www/google.com ,我希望它是https://google.com.sampcheck.com以便它显示主 URL 的内容。

RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
     RewriteRule . index.php [L]
        RewriteCond %{HTTP_HOST} ^.sampcheck.com
RewriteCond %{HTTP_HOST} www\.([^.]+)\.sampcheck\.com [NC]
RewriteRule ^(.*)$ http://sampcheck.com/www/$1 [L,NC,QSA]

除了我对这个问题的评论和我的困惑之外,这种主机命名方案应该有什么意义(廉价的网络钓鱼尝试除外),这里有一些东西应该指向正确的方向:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.samcheck\.com$
RewriteRule ^/?www/([^/]+)/?$ https://www.$1.sampcheck.com/ [R=301]

最好从 302 临时重定向开始,然后在确定一切设置正确后才将其更改为 301 永久重定向。 这可以防止在尝试时出现缓存问题......

另请注意,只有当您确实拥有这些动态主机名的有效证书时,此类重定向才有效...

此规则在 http 服务器主机配置或动态配置文件(“.htaccess”文件)中同样适用。 显然重写模块需要在http服务器中加载并在http主机中启用。 如果您使用动态配置文件,您需要注意在主机配置中完全启用它的解释,并且它位于主机的DOCUMENT_ROOT文件夹中。

还有一个一般性的评论:你应该总是喜欢将这样的规则放在 http 服务器主机配置中,而不是使用动态配置文件(“.htaccess”)。 这些动态配置文件增加了复杂性,通常是意外行为的原因,难以调试,而且它们确实会降低 http 服务器的速度。 它们仅在您无法访问真正的 http 服务器主机配置(阅读:非常便宜的服务提供商)或坚持编写自己的规则的应用程序(这是一个明显的安全噩梦)的情况下作为最后一个选项提供。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM