2

foo.com/articles/にたくさんの記事があります

このような:

foo.com/articles/banana.php
foo.com/articles/strawberry.php

次のようにSEOをサブディレクトリにリダイレクトします。

banana.foo.com
strawberry.foo.com

編集

(banana.foo.com) と入力すると、(foo.com/articles/banana.php) が表示されます。

表示するだけで、実際にはリダイレクトしない

Cpanel でサブドメインをたくさん作成できないので、(banana.foo.com) は Cpanel で作成しません。

4

3 に答える 3

3

これを .htaccess ファイルに入れます (「yourdomain」をドメイン名に置き換えることを忘れないでください)

Options +FollowSymLinks
Options +SymLinksIfOwnerMatch

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(.*).yourdomain.com$
RewriteRule (.*) yourdomain.com/articles/%1.php [L]

今リクエストすると

banana.foo.com

結果は次から得られます。

foo.com/articles/banana.php

等々

于 2012-11-12T14:05:29.783 に答える
1

.htaccessでは、次の方法でこれを行うことができます。

RewriteRule ^foo.com/articles/([a-z0-9-]+).php $1.foo.com [PT,L]

mod rewriteをインストールする必要があり、DNSサーバーにワイルドカードサブドメインを設定する必要があります。 http://en.wikipedia.org/wiki/Wildcard_DNS_record

于 2012-11-12T14:03:18.303 に答える
1

あなたは次のようなことをするかもしれません:

if (preg_match('#.*/articles/([a-z0-9\-_]+)\.php#i', $_SERVER['PHP_SELF'], $match)) {
    header('Location: http://' . $match[1] . '.foo.com');
    exit;
}

このコードを他の出力の前に貼り付けることを忘れないでください。そうしないと、エラーが発生します。

または、.htaccessmod_rewrite有効にしてRewriteEngine ON

RewriteRule ^.*/articles/([a-z0-9\-_]+)\.php$ http://$1.foo.com [R,L]

編集

逆は次のようになります。

if (preg_match('#^http://([a-z0-9\-_]+)\.foo\.com.*$#i', $_SERVER['HTTP_HOST'], $match)) {
    header('Location: http://foo.com/articles/' . $match[1] . '.php');
    exit;
}

そしてと.htaccess

RewriteCond %{HTTP_HOST} ^([a-z0-9\-_]+).foo.com$
RewriteRule .* http://foo.com/articles/%1.php [R,L]
于 2012-11-12T14:03:25.320 に答える