1

谢谢阅读。我已经进行了搜索,阅读了多个帖子(丢失计数),但仍然遇到一些看似简单的问题。我正在尝试从以下位置重定向或重写:

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

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

首先,这应该放在根目录的 htaccess 文件中还是 blog 子目录中?其次,我的一些尝试如下:

(尝试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]

任何帮助是极大的赞赏。

4

2 回答 2

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 中。

于 2012-06-22T19:41:52.380 回答
0

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

Redirect /blog http://blog.mysite.com/
于 2015-12-28T11:43:33.447 回答