我需要重写:
laptop.example.com到www.example.com/?c=1。phone.example.com到www.example.com/?c=2它不需要是动态的或者其他什么的。我只想要一小撮硬编码重写。
目前我正在尝试这个,它正在重定向,而不是重写:
RewriteCond %{HTTP_HOST} ^laptop.example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/?c=1$1 [QSA,L]国防部重写语法对我来说太令人费解了,我无法用它来制造头绪或尾巴。
我不想做301重定向。我希望进行URL重写,这样用户就可以在没有参数的情况下看到原始的子域URL,但是在内部将其作为后一个参数发送。
我已经在我的.htaccess文件中进行了几次重写;它们应该在重写之后应用。
我看过大约十几个类似的问题。但我无法将答案转化为我的具体需求,我无法找出我错过了什么,或者我做错了什么。这就是为什么我要特别针对我的情况再次提出这一要求。
工作代码:
RewriteCond %{HTTP_HOST} ^laptop.example.com$ [NC]
RewriteRule ^/?$ ?c=1$1 [QSA,L]希望我不会遇到这样的情况,其他人重写在下面,这又搞砸了!
发布于 2013-01-05 07:03:34
您的规则是重定向的,因为在重写规则的目标中有http://或https://的任何东西,它都是隐式地重定向。如果2台主机位于不同的not服务器或文档根上,则需要使用反向代理,这样浏览器的地址栏就不会改变。但是看起来(在查看您的实际网站之后),两台主机都位于同一台服务器上,并且共享相同的根。因此,您只需从目标中去掉http://www.findbyall.com:
RewriteCond %{HTTP_HOST} ^laptop.findbyall.com$ [NC]
RewriteRule ^(.*)$ /?c=1$1 [QSA,L]如果不希望^(.*)$正则表达式匹配所有内容,也可能希望将它更改为^/?$。
https://stackoverflow.com/questions/14168565
复制相似问题