-1

だから私はドメイン.comを持っているので、すべてのサブドメインを作成してブログシステムにリダイレクトしたいと思っています

domain.com - メイン Web サイト (ブログではなく、index.php によって読み込まれる) any.domain.com - ブログ Web サイト -> すべてがメイン ディレクトリの blogs.php にリダイレクトされます (index.php と同じ)

今これを達成するために私は使用します:

RewriteCond %{HTTP_HOST} ^([a-z0-9_]+\.)domain.com$ [NC]
RewriteRule (.*) blogs.php [QSA,L]

多かれ少なかれそれは機能します(私は素敵なURLを使用します - $_SERVER[request_uri]から抽出された実際の$_GETテーブルを取得します

しかし、その上で必要なのは、次のような既存のディレクトリにファイルをリンクできるようにすること です 。パラメータとしてjs

私は追加しようとしました:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

ただし、それを使用すると、常にメインのWebサイトが開きます(すべてのサブドメインがメインドメインにリダイレクトされ、既存のディレクトリ/ファイルとして機能するため)

要約すると:

RewriteCond %{HTTP_HOST} ^[*]+\.domain.com (xxx)! [NC] 
//in place of xxx - somehow check if there is anything after adderess
RewriteCond %{REQUEST_FILENAME} !-f  // and check if it exists
RewriteCond %{REQUEST_FILENAME} !-d  //

存在する場合はそれをサーバーに送信します。そうでない場合は、リクエストを blogs.php にサイレントに変換する古いものに従います。

RewriteCond %{HTTP_HOST} ^([a-z0-9_]+\.)gragieldowa.pl$ [NC]

RewriteRule (.*) blogs.php [QSA,L]

助けてくれてありがとう:)

4

1 に答える 1

0

ルールの先頭にパススルーを追加してみて、/index.php/blogs.php、または/が通過し、書き換えが起こらないようにすることができます。次に、ドメイン/サブドメイン チェックと !-f および !-d チェックを実行できます。

# handle root request
RewriteCond %{HTTP_HOST} !^(www\.)?domain.com$ [NC]
RewriteRule ^/?$ blogs.php [L]

# redirect subdomains to blog.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} !^(www\.)?domain.com$ [NC]
RewriteRule ^ blogs.php [L]
于 2012-10-22T18:01:34.283 に答える