1

我的网站设置是这样的

**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.com301 重定向到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-hereaddon.com/pagename,我完全不知道如何实现这一目标。

我查了很多查询并尝试了一堆,但就像之前一样,我只是得到一个 404,除此之外什么都没有。

我只想重定向那个特定的 URL,而不是整个集合或通配符。


我认为这与作为主域上的插件的域有关。但是 wordpress 永久链接代码和我的其他本地 301 重定向喜欢完美domain.com/somepage地工作。domain.com/someotherpage

任何帮助,将不胜感激。

4

1 回答 1

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]

对于您的第二部分,您可以在第1 部分的规则之上使用此规则,因为.htaccess规则按顺序执行:

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]
于 2013-08-26T00:52:02.520 回答