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

i1icjdpr  于 2023-10-23  发布在  其他
关注(0)|答案(8)|浏览(113)

我有一个本地域名**.dz**,不允许DNS更改,我想将域名和所有页面重定向到另一个域名**.com**,并在地址栏中保留.dz地址,完全隐藏.com域名。
我已经搜索了整个互联网所有的解决方案不这样做,有些做重定向到.com和.com显示在地址栏和其他一些重定向只有主页。
我想知道是否是一个PHP函数直接从.com域读取,然后将内容写入.dz域
我可以访问.htaccess或PHP文件。

ni65a41a

ni65a41a1#

我假设您可以访问httpd.confconf目录,
httpd.conf中,在提到mod_proxy的部分尝试一下。

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

如果你必须把上面的规则放在单独的conf文件中,名为httpd-ajp.conf,你可以在conf/extra目录中找到它。
完成后,您必须在尝试检查之前重新启动服务器。

编辑

正如你所说,你没有访问conf目录,你可以尝试在.htaccess下面的规则

RewriteEngine On
RewriteRule ^(.*)$ http://example.org/$1 [P]

但是你必须确保mod_proxy被启用,这些行必须在httpd.conf中取消注解,希望你能够向你的托管服务提供商询问。

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

ycl3bljg2#

.htaccess中尝试代理:

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

这是可能的,这是足够好的,在您的情况下,如果该网站是简单的。

tjjdgumg

tjjdgumg3#

事实上,Web应用程序应该托管在**.dz域中,并且您应该将.com永久重定向到dz.,无论您做什么,除了在dz域中更改DNS之外,它将是对.com的请求,而不是它本身(dz域名)。
我的意思是没有办法,除非你想Map所有的网址,并使 curl 到
.com为每个请求,并改变DOM文件和打印它。或使用Iframe这意味着你应该保持.com**域也。

vwkv1x7d

vwkv1x7d4#

有一个方法,只要他们是分开托管,但是,您的.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而不改变域名。

chhkpiq4

chhkpiq45#

你提到- '的.dz太慢,不允许DNS更改,这就是为什么我保留了一个.com和我'想重定向“慢主机”.dz到“快速主机“. com '..
当.dz域名太慢时,不值得将时间投入到整个网络流量的重定向上。这会使事情变得更慢。
你可以把一个重定向的html(如元刷新)在您的慢主机.dz域和服务的用户直接从.com域。有没有办法,你将受益于保持'慢主机' .dz域作为您的主要网站...

h5qlskok

h5qlskok6#

要显示来自DomainB的内容,但显示DomainA URL,有2个选项:

1.园区域名

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

2.使用.htaccess文件重定向

这种方法是:重定向并保留URL后的所有内容
第一个选项将在一个URL上显示与另一个URL相同的所有内容。要做到这一点,您需要修改您的.htaccess文件,以便您的用户将转到域,并插入以下代码行:

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

如果您使用的是file manager in cPanel,请确保您有选择显示隐藏文件的选项。

sbdsn5lh

sbdsn5lh7#

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

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

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

这可能会帮助你!

5w9g7ksd

5w9g7ksd8#

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

RewriteCond %{HTTP_HOST} ^domainname.com    

RewriteRule ^(.*) http://domainname.com/$1 [P]

相关问题