【问题标题】:improvement of a mod_rewrite rulemod_rewrite 规则的改进
【发布时间】:2015-11-05 17:24:53
【问题描述】:

你能看看下面的代码,看看这是否是正确的方法吗?

为了重定向:

http://blog.exampledomain.com/2013/10/testpage.html

https: //exampledomain.com/blog/testpage/

我在 2 个 .htaccess 文件中放置了以下重写规则:

  1. 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]
    
  2. exampledomain.com/blog的blog文件夹的.htaccess文件中我已经放置了:

    RewriteRule ^([0-9]{4})/([0-9]{2})/(.*)\.html https://exampledomain.com/blog/$3/ [R=301,L]
    

问题:

  1. 这是正确的做法吗?

  2. 这是否意味着在此设置中我们有 2 个重定向? (这可能对 SEO 不利)这些应该结合起来吗?怎么样?

【问题讨论】:

  • 您的 子域 blog. 是否指向与您的主域相同的文档根目录?
  • 是的,子域曾经是一个不再使用的 blogspot,并被子文件夹中的博客替换。但在当前设置中,子域博客。具有相同的根。

标签: regex apache .htaccess mod-rewrite redirect


【解决方案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/whateverhttps://exampledomain.com/blog/whatever,请在上述内容之后添加以下指令: p>

RewriteCond %{HTTP_HOST} ^(www\.)?blog\.exampledomain\.com$
RewriteRule ^(.*)$ https://exampledomain.com/blog/$1 [R,L]

【讨论】:

  • 谢谢!为了重定向 https 版本也应该修改代码吗?换句话说,也可以从 blog.exampledomain.com/2013/10/testpage.html 转到 https://exampledomain.com/blog/testpage/。
  • 如果您从同一个地方提供内容,那么就 HTTPS 版本而言没有任何改变。
  • 谢谢!但是有没有办法确保以下情况也发生:http://blog.exampledomain.com/到https://exampledomain.com/blog/和http://blog.exampledomain.com/whatever到https:/ /exampledomain.com/blog/whatever
  • 基本上其他所有内容都应该映射。
  • 谢谢!所以从:http://blog.exampledomain.com/https://exampledomain.com/blog/http://blog.exampledomain.com/whateverhttps://exampledomain.com/blog/whatever
猜你喜欢
  • 2014-01-29
  • 2012-07-23
  • 2018-02-03
  • 1970-01-01
  • 1970-01-01
  • 2012-05-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多