感谢阅读。我做了一个搜索,阅读多个帖子(丢失计数),但仍然遇到一些看起来很简单的问题。 我正在尝试重定向或重写:
http://www.mysite.com/blog/
到
http://www.blog.mysite.com/
首先,它应该放在根目录或blog子目录中的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]
非常感谢任何帮助。
答案 0 :(得分: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中。
答案 1 :(得分:0)
一个简单的代码就可以做到这一点。使用
Redirect /blog http://blog.mysite.com/