我的网站设置是这样的
**Main Domain** - domain.com
**Addon domain** - addon.com
**blog sub domain** - blog.addon.com
**blog sub page** - blog.addon.com/post/54546/url-slug-here
现在addon.com
是hostgator共享帐户上的附加域,其中根域为domain.com
我想将blog.addon.com
301重定向到addon.com/directory/blog
我已经尝试了
RewriteEngine on
RewriteCond %{HTTP_HOST} ^blog.addon.com$ [NC]
RewriteRule ^/?$ "http://addon\.com/directory/blog/" [R=301,L]
不幸的是,上面的代码根本不起作用。
我也试过了,
RewriteCond %{HTTP_HOST} ^blog\.addon\.com$
RewriteRule ^(.*)$ http://www.addon.com/directory/blog/$1 [L,R=301]
上述代码都不起作用。当我访问blog.addon.com时 - 它只是向我显示我在那里的默认index.html。
来到我的问题的第2部分,
我还需要将blog.addon.com/post/54546/url-slug-here
重定向到addon.com/pagename
,我完全不知道如何实现这一点。
我已经查了很多查询并尝试了一堆,但就像之前我只是得到一个404而且除此之外什么都没有。
我只是希望重定向该特定URL,而不是整套或外卡。
我认为这与域名是主域名的插件有关。但wordpress永久链接代码和我的其他本地301重定向(如domain.com/somepage
到domain.com/someotherpage
完美无缺。
任何帮助都将不胜感激。
答案 0 :(得分:3)
鉴于您的blog.addon.com
位于domain.com/blog
文件夹,请将关注.htaccess
放在文件夹domain.com/blog
中:
Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteBase /
# Only redirect if the domain is:
RewriteCond %{HTTP_HOST} ^blog\.addon\.com$
# Redirect anything to the domain URL
# http://www.addon.com/directory/blog/anything
RewriteRule ^/?(.*)$ http://www.addon.com/directory/blog/$1 [L,R=301]
但是,如果您想重定向到addon.com/blog
,请将RewriteRule
更改为:
RewriteRule ^/?(.*)$ http://www.addon.com/blog/$1 [L,R=301]
如果您想简单地将其重定向到www.addon.com
,请使用它:
RewriteRule ^/?(.*)$ http://www.addon.com/$1 [L,R=301]
对于第二部分,您可以在.htaccess
上使用此规则高于第1部分规则,因为规则按顺序执行:
RewriteCond %{HTTP_HOST} ^blog\.addon\.com$
RewriteRule ^post/\d+/([^/]+)$ http://www.addon.com/$1 [L,R=301]
如果您想要可以使用的确切重定向,则上述规则将重定向为通配符:
RewriteCond %{HTTP_HOST} ^blog\.addon\.com$
RewriteRule ^post/54546/url-slug-here$ http://www.addon.com/url-slug-here [L,R=301]