我有一个网址是www.blahblah.com/something
这是一个远程服务,我没有任何关系。
如何在我自己的服务器上使用.htaccess并从www.myurl.com重写,以便显示的内容全部是www.blahblah.com/something,但地址栏仍然显示为www.myurl.com
答案 0 :(得分:1)
不,外国网址无法做到这一点。
但是,您可以在本地执行此操作。例如,看看这个htaccess文件:
RewriteEngine On
Options +FollowSymlinks
RewriteBase /
RewriteRule ^some/test/url$ index.php?some=test&or=url [L]
在这种情况下,如果您访问www.myurl.com/some/test/url
,它将在浏览器中显示,但您的服务器实际上将在文档根目录中使用参数index.php
运行some=test&or=url
。< / p>
这仅适用于在服务器上运行的脚本。您无法在其他服务器/域上执行此操作。如果您尝试此操作(例如,通过将上面示例中的index.php?some=test&or=url
更改为http://www.blahblah.com/something
),则apache会将浏览器重定向到该网址。
htaccess(Apache)与用户建立连接,用户期待您的服务器响应。如果您尝试从其他服务器加载内容,Apache必须建立该连接,加载生成的HTML或其他任何内容,然后将其传递给您。但这会变得混乱,特别是当你进入cookie,SSL,javascript等等时。
我的问题是:你为什么真的需要这个?如果用户的网址发生变化,我不确定为什么会出现问题。如果这是一项你无法控制的服务,为什么要将它们发送给它呢?
您可能希望研究有关缓存服务器的更多信息,或者使用PHP来对您想要的服务器进行http调用并“传递”内容,假设您毫无疑问地知道cookie或SSL不会出现问题管他呢。但同样,为什么不将它们发送到正确的URL?
答案 1 :(得分:1)
试试这个:
RewriteCond %{HTTP_HOST} ^DomainA.com
RewriteRule ^(.*) http://DomainB.com/$1 [P]
它对我有用。
来源:http://www.inmotionhosting.com/support/website/htaccess/redirect-without-changing-url
答案 2 :(得分:0)
mod_rewrite是正确的方法。
添加到.htaccess
RewriteEngine On
RewriteBase /
RewriteCond%{HTTP_HOST} ^ www \ .blahblah \ .com $ [NC]
RewriteRule ^(。*)$ http://www.myurl.com/ $ 1 [R = 301,L]
RewriteCond定义条件。在这种情况下,如果http_Host是www.blahblah.com
RewriteRule定义了要做的事情。在这种情况下,转发到您的目标域。 $ 1是您网址的其余部分
您可以在此处找到更多详细信息:http://httpd.apache.org/docs/current/mod/mod_rewrite.html