正しい方向を指し示してください。
サーバー上でドメインを設定するために .htaccess を使用しています。
/domain.com/* フォルダのファイルにアクセスするには、domain.com が必要です。ファイルが存在しない場合は、/domain.com/index.php をロードし、domain.com/images/image.jpg はファイル /domain.com/images/image.jpg をロードする必要があります。
1 つは、ブラウザに 302「ファイルが移動されました」という通知を送信せずにすべてをロードする必要があることです。
ご協力いただきありがとうございます!
答え1
ドメインが多数ある場合、またはドメインが少数であっても、それらすべてが多かれ少なかれ同じ構成である場合、これは次のような状況です。動的マス仮想ホスティングhttpd.conf
は、 用に作成されています。次のような内容が、 ファイル (または に含まれるファイルhttpd.conf
)に記述されます。
UseCanonicalName Off
VirtualDocumentRoot /var/www/%0/htdocs
ErrorLog /var/www/logs/error_log
CustomLog /var/www/logs/access_log combined
私も提案したい
DirectoryIndex index.php
index.php
クライアントがファイル名を指定しない場合は、ディレクトリ内のファイルをロードします。
答え2
ファイル パスにマップするドメインごとに仮想ホストを作成し、各仮想ホストの DocumentRoot をファイル システム上の実際のパスに指定する必要があります。次に、DEFAULT 仮想ホストがあることを確認します。これにより、設定されていないドメインに対する他のすべての要求で DEFAULT 仮想ホストが使用されるようになります。最後に、カスタム 404 エラー ハンドラーを作成します。これにより、要求されたファイルが存在しない場合は、代替コンテンツが提供されます。汎用メッセージと /images/image.png を表示する custom_404.php という PHP を作成する必要があります。
# Default Domain (Undefined domains will fall back to this)
<VirtualHost *:80>
ServerAlias www.defaultdomain.com
DocumentRoot /var/www/default/htdocs
ErrorDocument 404 /custom_404.php
ErrorLog /var/www/default/logs/error_log
CustomLog /var/www/default/logs/access_log combined
</VirtualHost>
# domain1.com
<VirtualHost *:80>
ServerName domain1.com
ServerAlias www.domain1.com
DocumentRoot /var/www/domain1.com/htdocs
ErrorDocument 404 /custom_404.php
ErrorLog /var/www/domain1.com/logs/error_log
CustomLog /var/www/domain1.com/logs/access_log combined
</VirtualHost>
# domain2.com
<VirtualHost *:80>
ServerName domain2.com
ServerAlias www.domain2.com
DocumentRoot /var/www/domain2.com/htdocs
ErrorDocument 404 /custom_404.php
ErrorLog /var/www/domain2.com/logs/error_log
CustomLog /var/www/domain2.com/logs/access_log combined
</VirtualHost>
お役に立てれば!
-ケビン
答え3
これを整理するには仮想ホストを使用する必要があります。サンプルの仮想ホスト ファイルを以下に示します。
<VirtualHost *:80>
ServerName example.net
ServerAlias www.example.net
ServerAdmin [email protected]
DocumentRoot /var/www/vhosts/www.example.net/html
ErrorLog /var/www/vhosts/www.example.net/logs/errors.log
Customlog /var/www/vhosts/www.example.net/logs/access.log combined
</VirtualHost>
このファイルを/etc/httpd/conf.d/内に置き、例えばvhost_example.net.confという名前を付けます。
そして、/etc/httpd/conf/httpd.confの最後の行に以下を追加します。
/etc/httpd/conf.d/vhost_example.net.conf を含める
(または単に/etc/httpd/conf.d/*.confを含める)そしてhttpd.confファイルでは、この行をコメント解除することを忘れないでください
名前仮想ホスト *:80