2012-06-22 55 views
1

感谢您的阅读。我已经完成了搜索,阅读了多篇文章(丢失了数量),但仍然遇到了一些看似简单的问题。 我试图重定向或重写来自:指向子域名的目录

http://www.mysite.com/blog/ 

http://www.blog.mysite.com/ 

首先,这应该去在根目录或博客子目录中的htaccess的文件? 其次,我的几个尝试都低于:

(尝试1)

RewriteCond %{HTTP_HOST} ^mysite\.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.mysite\.com$ 
RewriteRule ^blog\/?$ "http\:\/\/www\.blog\.mysite\.com\/" [R=301,L] 

(尝试2)

RewriteCond %{HTTP_HOST} ^(www\.)?blog\.mysite\.com$ 
RewriteCond %{REQUEST_URI} mysite.com/blog 
RewriteRule ^(.*)$ /blog/$1 [L] 

(尝试3)

RewriteRule http://mysite.com/blog http://www.blog.mysite.com/$1 [R=301,L] 

(尝试4)

rewriterule ^blog/(.*)$ http://www.blog.mysite.com/$1 [r=301,nc] 

任何帮助,非常感谢。

回答

1

您的第一次尝试看起来接近正确。我会从重写目标删除OR条件和包装这两个成一个单一的正则表达式,并删除所有逃脱斜线和报价:

# Also, are you missing RewriteEngine On? 
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(www\.)?mysite\.com$ [NC] 
# Redirect and place everything after /blog onto/
RewriteRule ^blog(.*)$ http://www.blog.mysite.com$1 [R=301,L] 

这应该放在根目录下的.htaccess。

0

一个简单的代码可以做到这一点。使用

Redirect /blog http://blog.mysite.com/