重定向网站,但将原始网址保留在地址栏中

时间:2016-12-24 15:01:32

标签: php .htaccess dns

我有一个本地域名 .dz 不允许更改DNS ,我想将域和所有页面重定向到另一个域。 com ,并将.dz地址保留在地址栏中并完全隐藏.com域名。

我搜索了整个互联网,所有解决方案都没有这样做,有些会重定向到.com,而.com会在地址栏中显示,而其他一些只重定向主页。

我想知道是否是直接从.com域读取然后将内容写入.dz域的php函数

我可以访问.htaccess或PHP文件。

8 个答案:

答案 0 :(得分:6)

.htaccess中尝试使用代理:

RewriteEngine  on
RewriteRule ^ http://domain.com%{REQUEST_URI} [NE,P]

如果网站很简单,这可能就足够了。

答案 1 :(得分:6)

我假设您有权访问httpd.confconf目录,

请在提及mod_proxy的部分的httpd.conf中尝试此操作。

ProxyPass / http://yourwebsite.com/ smax=0 ttl=60 retry=5
ProxyPassReverse / http://yourwebsite.com/ smax=0 ttl=60 retry=5

如果您必须将上述规则放在名为httpd-ajp.conf的单独conf文件中,您可以在conf/extra目录中找到它。

完成后,您必须在尝试检查之前重新启动服务器。

修改

正如您所说,您无法访问conf目录,可以在.htaccess

中尝试以下规则
RewriteEngine On
RewriteRule ^(.*)$ http://domain.com/$1 [P]

但您必须确保已启用mod_proxy,如果您能够与托管服务提供商联系,则必须在httpd.conf中取消注释这些行。

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

答案 2 :(得分:2)

实际上,网络应用程序应该托管在 .dz 域中,您应该将 .com 永久地重定向到 dz。你做什么除了在dz域名中更改DNS之外,它将是对 .com 本身(dz域名)的请求。

我的意思是除非你想要为每个请求映射所有网址并为 .com 做一个卷曲并更改DOM文件并打印它,否则没有办法。或者使用Iframe,这意味着你也应该保留 .com 域名。

答案 3 :(得分:1)

只要它们是单独托管的,就有一种方法,但是,你的.com需要生效并且正常工作。

这与原始的Facebook应用系统相同,只需发送到其URL,然后读取并显示输出。是否有GET,POST或Headers

基本上,它是一个PHP脚本代理,不会更改或添加任何来自其代理服务的输出

<?php 
$protocol = "http";
$domain = "domain.com";

$ch = curl_init();

$requestPath = $_SERVER['REQUEST_URI'];
$queryString = http_build_query($_GET);

curl_setopt($ch,CURLOPT_URL, $protocol.'://'.$domain.$requestPath);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);

$mode = $_SERVER['REQUEST_METHOD'];
$headers = getallheaders();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

if ($mode == 'POST'){
    curl_setopt($ch,CURLOPT_POST, count(http_build_query($_POST)));
    curl_setopt($ch,CURLOPT_POSTFIELDS, http_build_query($_POST));
}

$response = curl_exec($ch);

$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$body = substr($response, $header_size);

$headers = explode("\r\n", $header);
unset($headers[0]);
echo "<pre>";
foreach($headers as $val){
    if(strpos($val, "Transfer-Encoding") === false){
        header("$val");
        flush(); 
    }
}
echo "</pre>";
//close connection
curl_close($ch);
echo $body;
?> 

带有重写文件

RewriteEngine On
RewriteRule .* index.php [L]

如果您在.dz域中托管此内容,则会在不更改域名的情况下指向.com。

答案 4 :(得分:0)

此代码可帮助您重定向并保留URL后的所有内容。

/kvmfs/vms/{% block hostname %}{% endblock hostname %}/config.xml:
  file.managed:
    - source: https://git.cybbh.space/vta/saltstack/raw/master/apps/virsh/files/common.xml
    - makedirs: True
    - template: jinja
    - skip_verify: True
    - defaults:
        name: {{ self.hostname() }}
        mem: {% block mem %}{% endblock mem %}
        cpu: {% block cpu %}{% endblock cpu %}
        network: {% block network %}{% endblock network %}

/kvmfs/vms/{{ self.hostname() }}/disk0.qcow2:
  file.copy:
    - source: /kvmfs/images/{% block os %}{% endblock os %}-latest

qemu-img resize /kvmfs/vms/{{ self.hostname() }}/disk0.qcow2 {% block disk %}{% endblock disk %}:
  cmd.run:
    - requires:
      - /kvmfs/vms/{{ self.hostname() }}/disk0.qcow2

/kvmfs/vms/{{ self.hostname () }}/data/meta-data:
  file.managed:
    - source: https://git.cybbh.space/vta/saltstack/raw/master/apps/virsh/files/common.metadata
    - makedirs: True
    - template: jinja
    - skip_verify: True
    - defaults:
        hostname: {{ self.hostname() }}

/kvmfs/vms/{{ self.hostname () }}/data/user-data:
  file.managed:
    - source: https://git.cybbh.space/vta/saltstack/raw/master/apps/virsh/files/common.userdata
    - makedirs: True
    - skip_verify: True

genisoimage -o /kvmfs/vms/{{ self.hostname () }}/config.iso -V cidata -r -J /kvmfs/vms/{{ self.hostname () }}/data/meta-data /kvmfs/vms/{{ self.hostname () }}/data/user-data:
  cmd.run:    
    - requires:
      - /kvmfs/vms/{{ self.hostname () }}/data/metadata
      - /kvmfs/vms/{{ self.hostname () }}/data/userdata

答案 5 :(得分:0)

@Séddik,请在.htaccess文件中尝试这样的

RewriteCond %{HTTP_HOST} ^www.your-local-domain.dz


RewriteRule ^(.*) http://www.your-another-domain.com/$1 [P]

这可能会对你有所帮助!

答案 6 :(得分:0)

要显示DomainB中的内容但显示DomainA网址,则有2个选项:

<强> 1。园区域

如果DomainB是您的primary domain name,只需将DomainA添加为Parked Domain

<强> 2。使用.htaccess文件重定向

此方法是:重定向并保留URL后面的所有内容

第一个选项会在一个网址上显示与另一个网址相同的所有内容。 为此,您可以修改用户将访问的域的.htaccess文件,并插入以下代码行:

RewriteCond %{HTTP_HOST} ^DomainA.com
RewriteRule ^(.*) http://DomainB.com/$1 [P] 

如果您使用file manager in cPanel,请确保您可以选择显示所选的隐藏文件。

答案 7 :(得分:0)

你提到过 - &#39; .dz太慢而且不允许DNS更改,这就是为什么我保留了.com而我想要重定向&#34;缓慢托管&#34; .dz到&#34;快速主持人&#34; .com&#39; ..

当.dz域太慢时,不值得花时间重定向整个网络流量。它会让事情变得更慢。

您可以在慢速托管.dz域中放置重定向html(如元刷新),并直接从.com域中为用户提供服务。保持“慢速托管”不会让您受益匪浅。 .dz域名作为您的主要网站...