繁体   English   中英

如何在不使用301重定向的情况下使用htaccess将所有子域路由到index.php

[英]How do I route all subdomains to index.php using htaccess without 301 redirect

我想设置一个htaccess文件,该文件将对任何子域的请求路由到/ public_html /文件夹中的index.php文件。 我已经将DNS配置为接受通配符子域。

我计划为用户提供该站点的个性化URL,并通过子域传递用户名,因此保留URL的重要性很重要,因此301重定向是不可能的。

我的htaccess当前看起来像这样,但是不起作用(找不到服务器):

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+)\.mydomain\.com$ [NC]
RewriteRule . /index.php?subdomain=%1 [L,QSA]

我的最终目标是能够获取//joebloggs.mydomain.com/foo/bar的网址,以//joebloggs.mydomain.com/foo/bar其转换为//www.mydomain.com/index.php?user=joebloggs&route=/foo/bar

我需要在htaccess文件中拥有什么才能完成这项工作?

你可以这样

# if request is for a subdomain (except "www")
RewriteCond %{HTTP_HOST} ^((?!www\.).+)\.mydomain\.com$ [NC]
# internally rewrite to index.php
RewriteRule ^((?!index\.php$).*)$ /index.php?subdomain=%1&route=$1 [L]

由于在您尝试导航到index.php时似乎执行了该规则,因此无法通过index.php中的简单php逻辑来完成此操作吗?

我可能误解了您的目标,但是在我看来,您可以轻松地将其替换为GET。 您的网址也将准备好采用这种方法。

暂无
暂无

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

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