2

次のシナリオを使用してドメインをリダイレクトしたいというこのシナリオがあります。ApacheでRewriteRuleを使用してこれを実現できるかどうか、アドバイスをいただけますか?

http://www.domainname.com/urlを使用して行われたすべての呼び出しをhttp://domainname.com/urlにリダイレクトしたいと思います。

次の書き換えルールで上記を実現できました

# BEGIN WithoutWWW
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.domainname\.com$ [NC]
RewriteRule ^(.*)$ http://domainname.com/$1 [R=301,L]
# END WithoutWWW

http://www.domainname.comまたはhttp://domainname.comだけにアクセスしようとした場合は、http://dname.comにリダイレクトしてください。

ApacheでRewriteRuleを使用してこのルールを実現するにはどうすればよいですか?私もPHPを使用しているので、PHPを使用したソリューションも有効です。

4

3 に答える 3

2

.htaccessと既存および新規のコードを組み合わせたものは次のとおりです。

RewriteEngine on

# redirect domainname.com/ or www.domainname.com/ to dname.com/
RewriteCond %{HTTP_HOST} ^(www\.)?domainname\.com$ [NC]
RewriteRule ^$ http://dname.com [R=301,L]

# append www to domainname.com    
RewriteCond %{HTTP_HOST} ^www\.domainname\.com$ [NC]
RewriteRule ^ http://domainname.com%{REQUEST_URI} [R=301,L]
于 2012-04-04T19:11:07.907 に答える
1
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://domainname.com/$1 [R=301,L]
于 2012-04-04T18:47:33.610 に答える
0

その例はmod_rewriteのように見えます。mod_rewriteを使用すると、次のことができます。

# BEGIN WithoutWWW
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?domainname\.com$ [NC]
RewriteRule ^(.*)$ http://dname.com/$1 [R=301,L]
# END WithoutWWW

http://www.workingwith.me.uk/articles/scripting/mod_rewriteをご覧ください。

あなたのコメントに基づいて、ルートを別の方法でリダイレクトして、次のことができるようにします。

RewriteEngine on
#www.domainname.com & domainname.com -> dname.com
RewriteCond %{HTTP_HOST} ^(www\.)?domainname\.com$ [NC]
RewriteRule ^$ http://dname.com/ [R=301,L]

#www.domainname.com/[url] -> domainname.com/[url]
RewriteCond %{HTTP_HOST} ^www\.domainname\.com$ [NC]
RewriteRule ^(.*)$ http://domainname.com/$1 [R=301,L]
于 2012-04-04T18:44:47.793 に答える