是否可以使用通配符创建子域而无需重定向(R 标志)?
我认为我已经在域中配置了通配符,因为它对我有用:
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com
RewriteRule ^(.*)$ http://www.example.com/member.php?username=%1 [R,L]
但前提是我使用 R 或 R=301 标志进行重定向。我想要一个虚拟子域,而用户不会注意到它。 subdomain.example.com 并且不要更改栏中的网址。
我尝试了下一个:
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com
RewriteRule ^(.*)$ http://www.example.com/member.php?username=%1 [L]
没有 R 标志。但我收到内部服务器错误。问题是什么?有人可以帮我吗?
I think that I have configured ok the wildcards in my domain, because it works to me:
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com
RewriteRule ^(.*)$ http://www.example.com/member.php?username=%1 [R,L]
But only if I redirect with R or R=301 flag. I would like to have a virtual subdomain, and the user don't notice it. subdomain.example.com and don't change the url in the bar.
I have tried the next:
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com
RewriteRule ^(.*)$ http://www.example.com/member.php?username=%1 [L]
Without the R flag. But I get an Internal Server Error. What is the problem? Could someone help me please?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果没有重定向,您无法重定向到绝对网址。
此文档中的“虚拟用户主机”部分可以解决您的问题。
如果您 user.example.com 和 www.example.com 指向同一台机器,
那么您打算如何处理 RewriteRule 中捕获的组
You can't redirect to a absolute url without redirect.
"Virtual user host" section in this document solves your problem.
If you user.example.com and www.example.com are pointing to same machine then
But what are you planning to do with group captured in RewriteRule