[このように:hostname.com]というURLがあり、hostname.com/blogをblog.hostname.comに変更したいと思います。ApacheWebサーバーを使用しています。さらに情報を提供する必要がある場合はお知らせください。
3 に答える
これはあなたのために働くはずです:
RewriteCond %{HTTP_HOST} ^(www\.)? hostname\.com$
RewriteRule ^([^/.]+)(/.*)?$ http://$1.hostname.com$2 [L,R=301]
リダイレクトを行うだけでなく、実際にblog.hostname.comにサーバーをセットアップしている場合は、extra / httpd-vhostsのサブドメインごとに別の(仮想)ホストを使用するようにApacheを構成する必要があります。 conf。仮想ホストの構成に関する多くの情報については、http://foundationphp.com/tutorials/apache22_vhosts.phpを参照してください。
メモリからの簡単な例:
<VirtualHost blog.hostname.com:80>
DocumentRoot /srv/www/blog
ServerName blog.hostname.com
</VirtualHost>
これは、blog.hostname.comの仮想ホストがhostname.com/blogと同じページを表示することを意味します。これは、ドキュメントルートが/ srv / www(つまりLinuxセットアップ)であることを前提としています。そうでない場合は、必要な場所に正しいパスを挿入するだけです。
わあ、最初にSOアカウントとこの質問を作成してからしばらく経ちました。とにかく、それ以来私はかなりの量を学びました、そして今私が達成しようとしていたことはサブドメインを作ることであったことを知っています。他の2つの答えは、サブドメインを設定するという点で正しいです...ドメインがそれを指している場合。私は小さなAWS無料利用枠VPSにNoIPドメインを使用していましたが、無料のNoIPではサブドメインを作成できません。VPSにサブドメインが必要だと言ったら、魔法のように機能すると思いました。おっと!
裏話はさておき、サブドメインを作成するには、ドメインホストを使用してサーバーを指す新しいレコードを追加し、その新しいサブドメインを受け入れるようにサーバーを構成する必要があります。サブドメインの追加はプロバイダーによって異なりますが、現在はcloudflareを使用しているため、このガイドに従ってA/CNAMEレコードを追加すると機能します。レコードを追加したら、他の2つの回答を使用して、apacheにそのドメインでリッスンさせます。
今までの(ほぼ)5年間の回答に感謝します、SO!