Codeigniterのドメインに基づいてさまざまなコンテンツを提供します
-
29-09-2019 - |
質問
CodeigniterでWebサイトを開発します。しかし、私が使用するメトールが最良のアプローチであるかどうかはわかりません。同じサイトには多くのアドオンドメインがあります。ただし、コンテンツは、サイトにアクセスするために使用されるドメインに基づいてフィルタリングされます。
たとえば、ユーザーがドメインから来た場合siteusa.com
次に、特定のユーザーにそれに応じてフィルタリングされたコンテンツが表示されます。ユーザーが来た場合 siteuk.com/sitechina.com
コンテンツはそれに応じてフィレターになります...
私はURLを検出してコンテンツを提供するためにこのようなことをするつもりです
$ref = getenv("HTTP_REFERER");
echo $ref;
私が見ているもう1つの問題は、Codeigniterのbaseurr設定ですが、そのための解決策が見られました ここ
/*
|--------------------------------------------------------------------------
| Base Site URL
|--------------------------------------------------------------------------
|
| URL to your CodeIgniter root. Typically this will be your base URL,
| WITH a trailing slash:
|
| http://www.your-site.com/
|
*/
if(isset($_SERVER['HTTP_HOST']))
{
$config['base_url'] = isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on' ? 'https' : 'http';
$config['base_url'] .= '://'. $_SERVER['HTTP_HOST'];
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']);
}
else
{
$config['base_url'] = 'http://localhost/';
}
これはこれを行うのに最適な方法ですか?私が入るかもしれないボトルネックはありますか?
サイトの主なドメインは、フィルタリングされていないコンテンツを提供することであり、各アドオンドメインは、バックエンドの各ドメインのフィルターセットに従ってフィルタリングします。
解決
.htaccessルールはおそらくあなたにとってオプションですか? CIには、URLを細かく制御するためのroutes.phpファイルもありますが、ドメインレベルではないことに注意してください。
他のヒント
このようにすることで問題はありません。追加の機能には頭上が無視できるため、これはボトルネックを引き起こしません。
私は複数のWebサイト(数千)が同じコードイグテルインストールを指しているSaaSサービスで同じことをしている価値があることです。問題はありませんでした。
フィルタリングについては、http_host変数でクエリする必要があるため、適切なインデックスのセットアップがあることを確認してください。