0

michigan.sitename.com.htaccess で Rewrite ルールを使用して、サブ ドメイン ( ) から URL へのアクセスを書き換えたいと考えています。この場合はhttp://sitename.org/content/michigan-21st-century-community-learning-centers.

このサイトは Drupal に基づいています。

これは私がこれまでに持っているものです。最初の数行は Drupal からのもので、改行の後のすべては私からのものです。

サブドメインを使用しようとすると 404 エラーが発生します

  RewriteEngine on
  # Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

  # New information for Michigan sub domain
  RewriteCond %{HTTP_HOST} .
  RewriteCond %{HTTP_HOST} !^michigan.sitename\.com
  RewriteRule (.*) http://www.sitename.com/$1 [R=301, L]

どんなアドバイスも役に立ちます

4

2 に答える 2

0

最初にミシガンルールを配置する必要があります(残りについては、jon linの回答を参照してください):

  RewriteEngine on

  # New information for Michigan sub domain
  RewriteCond %{HTTP_HOST} ^michigan\.sitename\.com
  RewriteRule . http://www.sitename.com/content/michigan-21st-century-community-learning-centers [R=301,L]

  # Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
于 2012-09-11T10:19:01.250 に答える
0

ルールを次から変更します。

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

に:

RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} ^michigan\.sitename\.com
RewriteRule (.*) http://www.sitename.com/content/michigan-21st-century-community-learning-centers [R=301,L]

R=301,which mod rewrite が気に入らないの後にスペースがあります。別のパラメーターと puke があると仮定します。また、ミシガン州のサブドメインと一致!させたいため、 を削除します。URI も無視されます。

http://michigan.sitename.com/
http://michigan.sitename.com/foo/bar
http://michigan.sitename.com/blah.html

すべてリダイレクトされます:

http://sitename.org/content/michigan-21st-century-community-learning-centers

また、ミシガン リダイレクトが最初に発生するようにRewrite URLs of the form 'x' to the form 'index.php?q=x'.ルールを と交換します。そうしないと、リクエストは を介し​​てルーティングされます。または、index.php ルールに条件を追加することもできます。New information for Michigan sub domainindex.php

RewriteCond %{HTTP_HOST} !^michigan\.sitename\.com
于 2012-09-10T18:28:12.840 に答える