需要.htaccess援助

时间:2012-12-06 21:21:51

标签: .htaccess

我们有一个现有的网站,我们称之为ourdomain.com。我们从正在关闭的网站上移动内容,我们称之为legacydomain.com。我们将服务器上的遗留域指向/ public_html /文件夹。

我需要的是一个.htaccess,会将legacydomain.com或legacydomain / anything-重定向到mydomain.com/legacydomain/,并且不会在网址上附加任何其他内容。

但是,我还需要一些特定的URL来重定向到某些目的地,并且它们并不真正遵循模式。例如:

legacydomain.com/something.html到ourdomain.com/legacydomain/something.html

legacydomain.com/another.html到ourdomain.com/legacydomain/folder/another.html

这就是我的尝试:

RewriteCond %{HTTP_HOST} ^www\.legacydomain\.com$ [NC]
RewriteRule (.*) http://www.ourdomain.com/legacydomain/$1 [R=301,L]

Redirect 301 /something.html http://www.ourdomain.com/legacydomain/another.html

它主要起作用,但如果我访问legacydomain.com/anything-它甚至没有尝试重写,它只是保持域相同并给出404.而且我也有一种感觉,即使它确实工作,像legacydomain.com/anything-here/more-stuff这样的东西会被重写为mydomain.com/legacydomain/anything-here/more-stuff,这是我不想要的。

.htaccess中只有其他东西是将非www重写为www,以及标准的WordPress内容。任何指导将不胜感激。上面的所有内容都应该在示例前面有一个http://和www,但它不会让我发布那么多“链接”。

2 个答案:

答案 0 :(得分:1)

对于每个特定的重写,您需要两行,如下所示。根据您现有的配置,如果这不起作用,您可能需要在something.html前面的RewriteRule的开头添加斜杠。

RewriteCond %{HTTP_HOST} legacydomain.com
RewriteRule something.html http://ourdomain.com/legacydomain/something.html [R=301,L]

然后你会使用一个全能的东西。

RewriteCond %{HTTP_HOST} legacydomain.com
RewriteRule (.*) http://ourdomain.com/legacydomain/ [R=301,L]

答案 1 :(得分:0)

就个人而言,我会选择不使用mod_rewrite的最简单的解决方案。首先,只需将特定页面重定向到他们需要去的地方。

Redirect 301 /something.html http://ourdomain.com/legacydomain/something.html
Redirect 301 /another.html http://ourdomain.com/legacydomain/another.html

然后,只需将其他所有内容重定向到基本网址即可。

RedirectMatch 301 (.*) http://ourdomain.com/legacydomain/

这些必须放在RewriteEngine on语句之前的.htaccess文件中。