我不完全确定这是否可行并尝试搜索,但无法找到目前情况的确切答案。
我正在构建一项服务,该服务应允许用户将自己的域指向该服务。 (他们需要将A记录指向我的服务器ip)
我可以使用apache中的catch all来捕获域。所以我在httpd.conf中为这个catch创建了一个Vhost记录。因此,apache中所有未定义的主机名都指向某个目录。
现在我想将此域作为参数传递给我的服务。那么有可能将this.randomdomain.com指向www.mywebserviceurl.com/domain/catch/this.randomdomain.com并使用.htaccess
地址栏应保留网址this.randomdomain.com
修改
RewriteEngine On
RewriteRule ^(.*)$ http://example.com/blogs/string/$1 [R=301]
以上是重定向但firefox出现错误“页面没有正确重定向 - Firefox检测到服务器正在以永远不会完成的方式重定向此地址的请求。” 地址正在改变,我不想要。
谢谢!
答案 0 :(得分:1)
从规则中排除该域:
RewriteCond %{HTTP_HOST} !=example.com
RewriteRule ^(.*)$ http://example.com/blogs/string/$1 [R=301]
如果你也想要这个域:
RewriteCond %{HTTP_HOST} !=example.com
RewriteRule ^(.*)$ http://example.com/blogs/string/%{HTTP_HOST}/$1 [R=301]
答案 1 :(得分:0)
见这里:http://www.addedbytes.com/apache/mod_rewrite-cheat-sheet/
指令%{HTTP_REFERER}应该完成你所追求的目标。
答案 2 :(得分:0)
如果您使用Gumbo的答案,但更改大括号中的参数,则可以静默重定向。将[R=301]
更改为[L]
,这意味着它是将要执行的最后一条规则。
RewriteCond %{HTTP_HOST} !=example.com
RewriteRule ^(.*)$ http://example.com/blogs/string/$1 [L,P]
编辑:在看到Gumbo的答案后,您还需要启用mod_proxy并添加P标志。