0

ユーザーが「domain.com」だけを書いたとしても、サーバーが常にURLを「http://www.domain.com」の形式にリダイレクトすることを望んでいません。

Web でこの例をいくつか見つけることができましたが、既に .htaccess ファイルにいくつかの修正があり、何をどこに置くべきかわからないため、前のコードと衝突しません。

ここに私の .htaccess ファイルがあります:

RewriteEngine on
RewriteBase /
ErrorDocument 404 /404

RewriteRule ^adminator/?$ adminator/login.php [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ index.php?detail1=$1&detail2=$2&detail3=$3&detail4=$4 [QSA,L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ index.php?detail1=$1&detail2=$2&detail3=$3 [QSA,L]
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ index.php?detail1=$1&detail2=$2 [QSA,L]
RewriteRule ^([^/\.]+)/?$ index.php?detail1=$1 [QSA,L]

URLが「www」にリダイレクトされるようにするには、何を入力すればよいですか?

最後の質問ですが、検索エンジンが URL に問題を起こさないようにするために、私がしなければならないことはこれだけですか?

4

2 に答える 2

0

私は通常、逆のことをします。

おそらく www.example.com を example.com に転送したいでしょう -- URL が短いほど魅力的です。no-www.org/faq.php?q=class_b

HTML5ボイラープレートのおかげで、私は通常以下を追加します:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTPS} !=on
  RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
  RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
</IfModule>

.htaccess でそれを行いたい場合:

RewriteEngine on
RewriteBase /
ErrorDocument 404 /404
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteRule ^adminator/?$ adminator/login.php [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ index.php?detail1=$1&detail2=$2&detail3=$3&detail4=$4 [QSA,L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ index.php?detail1=$1&detail2=$2&detail3=$3 [QSA,L]
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ index.php?detail1=$1&detail2=$2 [QSA,L]
RewriteRule ^([^/\.]+)/?$ index.php?detail1=$1 [QSA,L]

それ以外の場合は、逆を試してRewriteCond関連付けますRewriteRule

于 2010-11-12T10:55:07.713 に答える
0

ピリオド をエスケープする必要がないため、[^/\\.]パターンは単純化されます。[^/.]

于 2011-04-15T12:04:59.970 に答える