重定向htaccess

时间:2017-05-31 07:30:02

标签: php .htaccess redirect

我遇到重定向问题,我们建立了一个新网站,旧网站上的博客需要重定向到新博客。每个博客帖子都需要重定向,其中有200多个。因此,无法为每个链接完成此操作

这是旧网址:

example.com/nl/blog/easy-car-shopping

这应该是新网址:

blog.example.com/easy-car-shopping/

因此example.com/nl/blog/应重定向到blog.example.com/,但到目前为止,我无法将其发挥作用。

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

您可以在.htaccess网站的根目录中创建example.com文件。

RewriteEngine on
RewriteBase / 

#if not already blog.example.com/
RewriteCond %{HTTP_HOST} !^blog\.example\.com$ [NC] 
#if request is for blog/, go to blog.example.com
RewriteRule ^blog/$ http://blog.example.com [L,NC,R=301] 

如果要删除/nl/,则应将其包含在常规表达中。

它应该适合你,希望它有所帮助!

答案 1 :(得分:0)

.htaccess的{​​{1}}文件中(假设/nl/blog/.htaccess是一个物理子目录),请使用mod_rewrite尝试以下操作:

/nl/blog

在您的示例中,此假定源URL不包含尾部斜杠。然后在替换(目标URL)上附加一个尾部斜杠。

通过将这些指令放在子目录RewriteEngine On RewriteCond %{HTTP_HOST} ^example\.com [NC] RewriteRule (.*) http://blog.example.com/$1/ [R=302,L] 文件而不是文档根目录中,可以避免在主站点上进行不必要的处理。

如果您确定它正常工作,请将.htaccess(临时)重定向更改为302(永久)重定向。 301s被浏览器缓存,因此可能会使测试出现问题。