htaccess - 子域作为 GET 参数
Posted
技术标签:
【中文标题】htaccess - 子域作为 GET 参数【英文标题】:htaccess - subdomain as GET parameter 【发布时间】:2012-03-22 00:53:03 【问题描述】:我的.htaccess
文件中已有以下内容:
RewriteEngine on
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]
但我想添加这样的规则:
RewriteCond %HTTP_HOST ^(.+).example.com
RewriteRule ^(.*)% http://example.com/?name=%1&type=$1 [R,L]
但如果没有它绑定到example.com
,它必须在任何域上工作。
【问题讨论】:
【参考方案1】:RewriteEngine on
RewriteCond %HTTP_HOST !^(www)\. [NC]
RewriteCond %HTTP_HOST ^(.*)\.(.*)\.com [NC]
RewriteRule (.*) http://www.%2.com/?name=%1 [R=301,L]
将http://subdomain.domain.com
重写为http://www.domain.com/?name=subdomain
将两者结合起来尝试这样的事情
RewriteEngine on
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %HTTP_HOST !^(www)\. [NC]
RewriteCond %HTTP_HOST ^(.*)\.(.*)\.com [NC]
RewriteRule (.*) http://www.%2.com/index.php?route=$1&name=%1 [R=301,L]
这会将http://subdomain.domain.com/hello-world
重定向到http://www.domain.com/index.php?route=hello-world&name=subdomain
【讨论】:
但是如何结合这两个规则,例如这个例子:subd.domain.com/folder1/folder2 = domain.com/index.php?domain=subd&route=folder1/folder2 - 浏览器中的 URL 不应该变成 domain.com/index.php?route=hello-world&name=subdomain ,它必须保持 subdomain.domain.com/hello-world - 我不需要 www 前缀 来吧,删除www.
部分然后你应该能够自己弄清楚我们自己
@user1247574,在这种情况下,您需要执行 Internal Redirect -> 只需删除 R=301 标志。 (但请记住,起初这似乎不起作用,因为您的浏览器会缓存这些 301)
这个放在哪里?谁能给我详细的步骤,我们是否也必须从 cpanel 添加子域?以上是关于htaccess - 子域作为 GET 参数的主要内容,如果未能解决你的问题,请参考以下文章
使用 htaccess 将所有流量从根重定向到特定的子域页面
.htaccess 问题、虚拟子域和 Codeigniter