您能否看看下面的代码,并说这是否是正确的方法。
为了重定向:
http://blog.exampledomain.com/2013/10/testpage.html
到
https: //exampledomain.com/blog/testpage/
我已将以下重写规则放在2 .htaccess文件中:
在exampledomain.com
根目录的.htaccess文件中,我放置了:
RewriteCond %{HTTP_HOST} ^blog\.exampledomain\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.blog\.exampledomain\.com$ [NC]
RewriteRule ^(.*)$ https://exampledomain.com/blog/$1 [R=301,L]
在exampledomain.com/blog
的博客文件夹中的.htaccess文件中,我放置了:
RewriteRule ^([0-9]{4})/([0-9]{2})/(.*)\.html https://exampledomain.com/blog/$3/ [R=301,L]
问题:
这是正确的方法吗?
这是否意味着在此设置中我们有2个重定向? (这可能对SEO不利)这些应该结合起来吗?怎么样?
答案 0 :(得分:1)
这两个重定向应合并为一个。
在子域的文档根目录中的.htaccess文件中(看起来它可能与主域的文档根目录相同?或者在主域.htaccess文件中 - 如果这是文件系统上的父目录) ),尝试以下方法:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?blog\.exampledomain\.com$
RewriteRule ^\d{4}/\d\d/(.+)\.html$ https://exampledomain.com/blog/$1/ [R,L]
当您确定这项工作正常时,请将临时重定向(R
)更改为永久重定向(R=301
)。
更新要同时从http://blog.exampledomain.com/
重定向到https://exampledomain.com/blog/
和http://blog.exampledomain.com/whatever
再转到https://exampledomain.com/blog/whatever
,请在之后添加以下指令 / em>以上:
RewriteCond %{HTTP_HOST} ^(www\.)?blog\.exampledomain\.com$
RewriteRule ^(.*)$ https://exampledomain.com/blog/$1 [R,L]