1

自分のサイトをwwwからwww以外にリダイレクトしたいのですが、「メインページ」はありません。

例えば。www.domain.comまたはwww.domain.com/は何もしませんが、www.domain.com/everything-elseはdomain.com/everything-elseにリダイレクトする必要があります

以下のコードが「メインページ」もリダイレクトするのはなぜですか?

RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
RewriteCond %{REQUEST_URI} !^$
RewriteRule ^(.*)$ http://%1/$1 [R=301,NC,L]
4

3 に答える 3

1

おそらく、で実行することで空のURLリクエストも許可するためです。^(.*)$RewriteRule

これを試して:

RewriteRule ^(.+)$ http://%1/$1 [R=301,NC,L]

.*任意の文字を0回以上.+受け入れますが、任意の文字を1回以上受け入れます。

于 2012-08-06T13:34:03.257 に答える
0

これに関して;http://localhost/ (index.php says $_SERVER['REQUEST_URI'] is /)

サイトのルート「REQUEST_URI」は空にできなくても「/」になると思います。だから多分あなたはこのようなことを試みるべきです。

RewriteEngineオン

RewriteCond%{HTTP_HOST} ^ www \ .domain \ .com $ [NC]
RewriteCond%{REQUEST_URI}!^ / $
RewriteRule ^(。+)$ http://domain.com/$1 [R = 301、L]
于 2012-08-06T13:46:12.660 に答える
0

それは機能していませんか?

RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
RewriteCond %{REQUEST_URI} !^\/?$
RewriteRule ^(.*)$ http://%1/$1 [R=307,NC,L]
于 2012-08-06T13:50:15.690 に答える