0

次のようなサブドメインアクセスを有効にしたWebサイトがあります。

 http://subdomain1.example.com

これは同じコードにアクセスしますが、異なるマイクロサイトを表示するためにドメインパラメータを渡します。そのためのhttpd.confコードは次のようになります。

 RewriteCond %{HTTP_HOST} ^([^./]+)\.example\.com$
 RewriteRule forums.html$ /browse.php?type=forums&domain=%1 [QSA]

次に、 http://example.comhttp://www.example.comにリダイレクトする必要があります

私はこれを試しましたが、うまくいきませんでした:

   RewriteCond %{HTTP_HOST} ^example\.com
   RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

(ソース:http ://www.cyberciti.biz/faq/apache-redirect-domaincom-to-wwwdomaincom/ )

編集1

<VirtualHost IPADDRESS:80>
    ServerAlias *.example.com
    DocumentRoot /var/www/html/abc
    ServerName www.example.com
    UseCanonicalName On

EDIT2

こんにちはmreithub、

必要なセットアップは次のようなものです。

http://X1.example.comは/something/X1のコードを使用する必要があります

http://X2.example.comは/something/X2のコードを使用する必要があります

http://example.comはhttp://www.example.comにリダイレクトする必要があります

http://www.example.com/scriptA.phpは、/ var / www / html / abc/scriptA.phpのコードを使用する必要があります

http://whateverelse.example.com/scriptA.phpは、/ var / www / html / abc / scriptA.phpのコードを使用する必要がありますが、「domain = whateverelse」パラメーターを指定して渡す必要があります(ただし、画面上のURLは常に表示される必要があります)ドメインをhttp://whateverelse.example.comとして表示します)

私はSFについて質問しました-https://serverfault.com/questions/408805/configuring-httpd-conf-to-handle-wildcard-domains-with-multiple-scripts-そこからアダプターの手法を使用してドメインを渡しましたPHPスクリプトへのパラメータ。

4

2 に答える 2

0

Apache で VirtualHosts 全体をリダイレクトするための私の個人的なお気に入りは、ドメインの VirtualHost を作成してリダイレクトし、Redirectディレクティブを使用することです。

<VirtualHost IPADDRESS:80>
  ServerName example.com
  Redirect / http://www.example.com/
  DocumentRoot /var/www # <-- Just for completeness
</VirtualHost>

...そして、実際のWebサイト用の別のVirtualHost

Redirectホスト a に向かうすべてのリクエストを b にリダイレクトしますが、接尾辞は保持します (例: become http://example.com/foo?bar=bak) http://www.example.com/foo?bar=bak

Redirecthttp:// から https:// に書き換えるのによく使う

于 2012-11-08T00:55:42.953 に答える
0

わお。3時間後... たくさんの変化、たくさんの学び。

1)これを変更しました:

   NameVirtualHost IPADDRESS:80

に:

   NameVirtualHost *:80

2) すべてマーク:

   <VirtualHost IPADDRESS:80>

として:

   <VirtualHost *:80>

3)ServerNameを再配置し、VirtualHost内で最初に配置しました(これが違いを生んだかどうかはわかりません)

<VirtualHost *:80>
    ServerName test4.example.com
    ServerAlias test4.example.com
    DocumentRoot /home/test4/public_html
    UseCanonicalName On
</VirtualHost>

3) すべての VirtualHosts を再配置しました。「静的」/固定サブドメインを前に配置し、キャッチオール/www を最後のものとして配置しました。最後のものは次のようになります。

<VirtualHost *:80>
    ServerName www.example.com
    ServerAlias example.com *.example.com
    DocumentRoot /var/www/html/abc
    UseCanonicalName On
    ...
于 2012-11-08T04:29:22.267 に答える