2011-01-17 18 views
1

私はウェブサイトをセットアップしようとしています、ドメイン単純なローカル開発用に設定サブドメイン(htaccessの?)

と呼ばれる瞬間のためにあるサブドメインと

examplesproject.co.uk

sub.examplesproject.co.uk

は、私はお申し込みと思いますので、私はサブドメインを設定していると私はexamplesproject.co.uksub.examplesproject.co.ukため同じドキュメントルートの両方を持っているが、私はのためのコンテンツをしたいです実際

examplesproに位置するように

sub.examplesproject.co.uk

ject.co.uk/sub

私はなぜサブドメインのexamplesproject.co.uk/subにドキュメントルートを設定しませんでしたか?そのため、ローカル開発では、2つのドメインを完全に別々に扱う必要があります。これは、サブドメインフォルダがメインドメイン内に魅力的であることを考えると、愚かなような相対URLを意味しません。誰かがsub.examplesproject.co.ukに閲覧た場合

しかし、彼らは私が望んでいないので、私はルートにhtaccessの書き換えを設定examplesproject.co.uk、同じ内容になるだろうそのようなフォルダ:作品

#rewite sub-domain to sub directory 
RewriteCond %{HTTP_HOST} ^[www\.]*sub.examplesproject.co.uk [NC] 
RewriteCond %{REQUEST_URI} !^/sub/.* 
RewriteRule ^(.*) /sub/$1 [L] 

は、しかし、あなたがexamplesproject.co.uk/subを参照する場合、あなたはまだ、コンテンツを見ることができると私は同じ内容のための2つの場所を持っている必要はありません。しかし、ブラウザのアドレスにサブドメインを表示するようにこのサブディレクトリを書き直すと、それはループを作り続けています。

別の側面点として、私は私のメインのサイトは、WWWを使用するように強制することにしたいので、私はまた私のルートhtaccessファイルに以下の持っている..

#force add www on main domain 
RewriteCond %{HTTP_HOST} ^examplesproject.co.uk$ 
RewriteRule ^(.*)$ http://www.examplesproject.co.uk$1 [R=301,L] 

しかし、私はサブドメインを強制したいですwwwのinfrontを持たないようにする。http://sub.examplesproject.co.ukそしてhttp://www.sub.examplesproject.co.uk。これを行うには、私は以下を試していますが、それはサブドメイン内の他のディレクトリではうまくいかないようです(それが意味をなさない)。 Anyhowsこれは私が(すなわちexamplesproject.co.uk/subで)サブディレクトリに置かコードです:それは、物事に影響を与えた場合には、私が言及したい

#force remove www on sub-domain 
RewriteCond %{HTTP_HOST} ^www.sub.examplesproject.co.uk [NC] 
RewriteRule ^(.*)$ http://sub.examplesproject.co.uk/$1 [L,R=301] 

思想。

だから、私の質問はどのように私は素敵なセット・アップを達成します、次のとおりです。私は私のサブドメインを開発し、実装するための相対URLを使用することができます

  1. を。
  2. http://sub.examplesproject.co.ukへのブラウジングがでhttp http://www.examplesproject.co.uk/sub
  3. ブラウジングの内容を示しています//www.examplesproject .co.uk /サブは(SEOの目的のために)コンテンツを示すことによって、サブドメインを重複しない

とも

  1. メインドメインexamplesproは、強制的にwww - http://www.examplesproject.co.ukを使用しています。
  2. サブドメインsub.examplesproject.co.ukは強制的にです。はwww-を使用しています。http://sub.examplesproject.co.uk

誰でも助けることができれば、本当に感謝しています。ちなみに、私はローカルで仮想ホストを設定しましたhttp:// examplesprojecthttp://sub.examplesprojectオンライン動作を複製するためにwampとhostsファイルを使用しています。

お読みいただきありがとうございます。回答/提案は大歓迎です。

+0

あなた自身の問題を解決したようですが、あなたの回答は外部リソースにリンクしています。適切な答えを書いてください。そうしないと、この質問は閉じられ、削除される可能性があります。 –

+0

私のために働いた良い答えを見てください.. http://www.webmasterworld.com/apache/4254301.htm。ニースの一人。 – rootsical

答えて

0

ごめんなさい、ティムポスト!私はこの時間に内容を入れました!これを見ていただきありがとうございます。これが誰かを助けることを願っています。

この

は(このためにウェブマスターワールドでジム(jdMorgan)のおかげで - http://www.webmasterworld.com/apache/4254301.htm)私のために働いたソリューションです。これらのルールのすべてを入れて

、この順で、ルートの.htaccessに:

# Externally redirect direct client requests for test subdomain subdirectory paths to the test subdomain 
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /sub/([^\ ]*)\ HTTP/ 
RewriteRule ^sub/(.*)$ http://sub.examplesproject\.co\.uk [R=301,L] 
# 
# Externally redirect all non-canonical, non-blank, non-test-subdomain hostname requests to canonical "www" main domain 
RewriteCond %{HTTP_HOST} !^(www\.examplesproject\.co\.uk)?$ 
RewriteCond %{HTTP_HOST} !^([^.:]+\.)*sub\.([^.:]+\.)*examplesproject\.co\.uk [NC] 
RewriteRule ^(.*)$ http://www.examplesproject.co.uk$1 [R=301,L] 
# 
# Externally redirect non-canonical subdomain hostname requests to canonical test subdomain 
RewriteCond %{HTTP_HOST} ^([^.:]+\.)*sub\.([^.:]+\.)*examplesproject\.co\.uk [NC] 
RewriteCond %{HTTP_HOST} !^sub\.examplesproject\.co\.uk$ 
RewriteRule ^(.*)$ http://sub.examplesproject.co.uk/$1 [R=301,L] 
# 
# Internally rewrite sub-domain requests to subdirectory path 
RewriteCond %{HTTP_HOST} ^sub\.examplesproject\.co\.uk$ 
RewriteCond $1 !^sub/ 
RewriteRule ^(.*)$ /sub/$1 [L] 

今すぐ最初のルールでTHE_REQUESTを確認すると、遭遇した無限リダイレクションループの問題を防ぐことができます。

大文字と小文字の区別とアンカーを慎重に使用するため、正確なホスト名が適用されるようになりました。

ニースone aiit!

関連する問題