1

こんにちは、私はメイン ドメインとサブドメインを持つ Web サイトを持っています。Apache Web サーバーと centOS 上で実行されています。

http://subdomain.domain.com/buy-a-new-car

すべてのサブドメイン リクエストをメイン ドメインにリダイレクトし、URL を次のように書き換えたいと思います。

http://domain.com/buy-a-new-car

私がこれまでに持っている.htaccessコードは次の結果になります:

http://domain.com/index.php?buy-a-new-car

( index.php? ) 部分を取り除きたいのですが、.htaccess ディレクティブを書くのは初めてで、REGEX に混乱しています。

ここに私の現在のコードがあります:

RewriteEngine on
RewriteBase /
Options -Indexes
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ index.php?/$1

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

どんな助けでも大歓迎です!

4

2 に答える 2

2

最初にリダイレクトを行う必要があり、最後に次へのルーティングを行いますindex.php

RewriteEngine on
RewriteBase /
Options -Indexes -Multiviews

# redirect subdomains to main domain
RewriteCond %{HTTP_HOST} ^subdomain.domain.com$
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

# redirect direct accesses to index.php 
RewriteCond %{THE_REQUEST} \ /index\.php\?/([^&\ ]+)&?([^\ ]*)
RewriteRule ^ /%1?%2 [L,R=301]

# route everything to index.php internally
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1
于 2013-10-01T06:38:48.100 に答える