首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用htaccess将laptop.example.com重写到www.example.com/?c=1

如何使用htaccess将laptop.example.com重写到www.example.com/?c=1
EN

Stack Overflow用户
提问于 2013-01-05 04:25:57
回答 1查看 130关注 0票数 1

我需要重写:

  • laptop.example.comwww.example.com/?c=1
  • phone.example.comwww.example.com/?c=2

它不需要是动态的或者其他什么的。我只想要一小撮硬编码重写。

目前我正在尝试这个,它正在重定向,而不是重写:

代码语言:javascript
复制
RewriteCond %{HTTP_HOST} ^laptop.example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/?c=1$1 [QSA,L]

国防部重写语法对我来说太令人费解了,我无法用它来制造头绪或尾巴。

我不想做301重定向。我希望进行URL重写,这样用户就可以在没有参数的情况下看到原始的子域URL,但是在内部将其作为后一个参数发送。

我已经在我的.htaccess文件中进行了几次重写;它们应该在重写之后应用。

我看过大约十几个类似的问题。但我无法将答案转化为我的具体需求,我无法找出我错过了什么,或者我做错了什么。这就是为什么我要特别针对我的情况再次提出这一要求。

工作代码:

代码语言:javascript
复制
RewriteCond %{HTTP_HOST} ^laptop.example.com$ [NC]
RewriteRule ^/?$ ?c=1$1 [QSA,L]

希望我不会遇到这样的情况,其他人重写在下面,这又搞砸了!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-05 07:03:34

您的规则是重定向的,因为在重写规则的目标中有http://https://的任何东西,它都是隐式地重定向。如果2台主机位于不同的not服务器或文档根上,则需要使用反向代理,这样浏览器的地址栏就不会改变。但是看起来(在查看您的实际网站之后),两台主机都位于同一台服务器上,并且共享相同的根。因此,您只需从目标中去掉http://www.findbyall.com

代码语言:javascript
复制
RewriteCond %{HTTP_HOST} ^laptop.findbyall.com$ [NC]
RewriteRule ^(.*)$ /?c=1$1 [QSA,L]

如果不希望^(.*)$正则表达式匹配所有内容,也可能希望将它更改为^/?$

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14168565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档