2012-02-08 15 views
-1

"http://blog.test.com/"のリンクを "http://www.test.com/blog/"に変更したいと思います。.htaccessのRewriteRule

私は

RewriteRule ^blog.test.com?$ test.com/blog [NC,R=301,L] 

は私が何かを見逃していましたか?私の.htaccessに次のコードを試してみた

おかげ

答えて

2

Apacheを使用している場合は、あなたがするRewriteCond内のURL(例えばblog.test.com)のホスト部分と一致する必要があります:すべての

RewriteCond %{HTTP_HOST} ^blog.test.com$ [NC] 
RewriteRule ^(.*)$ http://www.test.com/blog/$1 [R=301,L] 
+0

申し訳ありません...これは機能していません – Natasha

+0

「申し訳ありません...これは機能していません」:ここにコメントの種類がたくさんあります。あなたが本当に良い答えを得たいのであれば、うまくいかないことの良い説明を提供してください。例:どのURIがうまくいかないかを知る必要があります。また、あなたのaccess.logとerror.logを見て、ここにマッチする行を投稿することもできます。 – anubhava

+0

今それはblog.test.comを示します。それはtest.com/blogにリダイレクトされません – Natasha

1

最初に、あなたはhttp://blog.test.com/whatever_or_emptyへを交換する必要がありますhttp://www.test.com/blog/whatever_or_emptyあなたのHTMLのhrefで。

blog.test.comサブドメインは別のURLですが、つまり、RewriteRuleが別のURLに書き直すと外部リダイレクトが発生します。これはブラウザに反映されます。一時的にredirect(302(the default))またはpermanent redirect(301)としてください。

したがって、URLを書き換えてリンクhttp://blog.test.com/http://www.test.com/blog/に変更すると、役に立たなくなります。


でも、Apache Module mod_proxyを使用してこれを達成できます。

Apacheのプロキシモジュールは、これらがあります

  • はmod_proxyの:プロキシインフラストラクチャと設定とプロキシ要求を管理するとともに、コアモジュールを扱っています。
  • mod_proxy_http:これは、HTTPとHTTPSを使用してドキュメントを取得することを処理します。
  • mod_proxy_ftp:FTPを使用してドキュメントを取得します。
  • mod_proxy_connect:これは、セキュア(SSL)トンネリングのCONNECTメソッドを処理します。
  • mod_proxy_ajp:これは、Tomcatなどのバックエンドサーバー用のAJPプロトコルを処理します。
  • mod_proxy_balancerは、複数のバックエンドにわたってクラスタリングとロードバランシングを実装します。
  • mod_cache、mod_disk_cache、mod_mem_cache:これらはドキュメントキャッシュを管理します。キャッシュを有効にするには、mod_cacheとdisk_cacheとmem_cacheの一方または両方が必要です。
  • mod_proxy_html:これは、HTMLリンクをプロキシのアドレス空間に書き換えます。
  • mod_xml2enc:これは、mod_proxy_htmlと他のマークアップフィルタリングモジュールに代わって国際化(i18n)をサポートします。スペース。
  • mod_headers:これはHTTP要求と応答ヘッダーを変更します。
  • mod_deflate:クライアントとバックエンドによる圧縮を交渉します。

プロキシが機能するために有効で、少なくともmod_proxymod_proxy_httpモジュールを必要とする:

あなたがApacheのconfファイルにこれらのような行を持つ必要があります

LoadModule proxy_http_module modules/mod_proxy_http.so 
LoadModule proxy_module modules/mod_proxy.so 

これをご使用くださいVirtualhosthttp://www.test.com

ProxyPass /blog http://blog.test.com 
ProxyPassReverse /blog http://blog.test.com 
ProxyRequests On 
ProxyVia On 

<Proxy *> 
Order allow,deny 
Allow from all 
</Proxy> 

定義:



キャッシングの詳細については、mod_cache Apache Docsを参照してください。