web-dev-qa-db-ja.com

Webサイトをリダイレクトしますが、アドレスバーには元のURLを保持します

ローカルドメイン名がある。dzこれはDNSの変更を許可しない、ドメインとすべてのページを別のドメインにリダイレクトしたい。com 、. dzアドレスをアドレスバーに保持し、.comドメインを完全に非表示にします。

私はインターネット全体を検索しましたが、すべてのソリューションはこれを実行せず、一部は.comにリダイレクトし、.comはアドレスバーに表示され、一部はホームページのみをリダイレクトします。

私は.comドメインから直接読み取って.dzドメインにコンテンツを書き込むphp関数かどうか疑問に思っています

.htaccessまたはPHPファイルの両方にアクセスできます。

11
seddik

.htaccessのプロキシでお試しください:

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

サイトが単純な場合、これはあなたの場合には十分である可能性があります。

6
Croises

httpd.conf またはconfディレクトリにアクセスできると思います。

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
6
Abhishek Gurjar

実際には、Webアプリケーションは。dzドメインでホストされている必要があり、。comを永続的にdz。にリダイレクトする必要があります。 dzドメイン側では、それ自体は。comへのリクエストになります(dzドメイン名)。

つまり、すべてのURLをマップして、リクエストごとにカールを。comにして、DOMファイルを変更して印刷しない限り、方法がないということです。または。comドメインを維持する必要があることを意味するIframeを使用します。

2
Saeed.Gh

それらが別々にホストされている限り、方法はありますが、.comはライブで機能している必要があります。

これは、元のFacebookアプリシステムと同じで、URLに送信され、出力を読み取って表示します。 GET、POSTまたはヘッダーかどうか

基本的に、それは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をポイントします。

1
Martin Barker

@Séddik、.htaccessファイルで次のように試してください

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


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

これはあなたを助けるかもしれません!

0
Abdul Salam

DomainBのコンテンツを表示し、DomainAのURLを表示するには、2つのオプションがあります。

1。パークドメイン

DomainBが primary domain name の場合、DomainAを Parked Domain として追加します。

2。 .htaccessファイルを使用してリダイレクトする

この方法は次のとおりです。リダイレクトして、URLの後はすべてを保持します

最初のオプションでは、1つのURLに同じコンテンツをすべて表示します。これを行うには、ユーザーがアクセスするドメインの.htaccessファイルを変更し、次のコード行を挿入します。

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

cPanelのファイルマネージャ を使用している場合は、隠しファイルを選択して表示するオプションがあることを確認してください。

0
anakpanti

あなたは述べました-'.dzは遅すぎてDNSの変更を許可しません。それが私が.comを予約し、「遅いホスティング」の.dzを「速いホスト」の.comにリダイレクトしたい理由です..

.dzドメインが遅すぎる場合は、Webトラフィック全体のリダイレクトに時間を費やす価値はありません。それは物事をより遅くします。

低速ホスティングの.dzドメインにリダイレクトhtml(メタリフレッシュのような)を配置して、.comドメインから直接ユーザーにサービスを提供できます。 「遅いホスティング」の.dzドメインをメインサイトとして維持することから利益を得る方法はありません...

0

このコードは、URLの後のすべてをリダイレクトして保持するのに役立ちます。

RewriteCond %{HTTP_Host} ^domainname.com    

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