1

.htaccess ファイルを使用して「www.」を追加したいと考えています。それなしで要求された場合はすべての URL に送信しますが、このコードを編集せずに多くのサイトで使用したいので、ドメインを定義しなくてもこれを実行できることを願っています。これは可能ですか?

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteBase /

    RewriteRule ^sitemap\.xml/?$ sitemap.php [L]

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

    RewriteRule ^(.*)$ index.php?filename=$1 [L,QSA]
</IfModule>
4

3 に答える 3

0

HTML 5 ボイラープレートはこれを使用します。

RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

これにより、「www.」が追加されます。すでにサブドメインがある場合でも。

于 2013-12-03T15:31:17.250 に答える
0

申し訳ありませんが、具体的な回答はできません。サーバー側のコードを選択してこれを行うことをお勧めします。

PHPでは、次のようなことをします...

$host = !empty($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'];
$url = explode(".", $host);
if (count($url) == 2){
    //no subdomain found
    redirect("www.".$host);
}

更新: これは、example.co.uk のようなドメイン名で問題が発生する可能性があります。それが問題かどうかはわかりません..あなたのサイトでサブドメインをサポートしようとしていました (したがって、www をチェックして追加するだけではありません)。 .

于 2013-07-11T13:47:11.580 に答える
0

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
于 2013-07-11T12:58:39.517 に答える