【问题标题】:.htaccess redirect rule permanent domain change.htaccess 重定向规则永久域更改
【发布时间】:2015-10-14 16:44:15
【问题描述】:

所以,基本上我把域名从 Domain1.info 改成了 Domain2.com

我改变的另一件事是网站内 url 的规则

  • 旧网址结构:www.Domain1.info/lang/page-name.html
  • 新的url结构:www.Domain2.com/lang/page-name

我已经添加了代码:

RewriteEngine On

RewriteRule ^(.*)$ http://www.domain2.com/$1 [R=301,L]`

它成功地将我从旧域重定向到新域,但我想摆脱 .html 结尾。

【问题讨论】:

    标签: regex apache .htaccess mod-rewrite redirect


    【解决方案1】:

    基本上,只需从第一个匹配组中排除 .html 部分:

    RewriteRule ^(.*)\.html$ http://www.domain2.com/$1 [R=301,L]`
    

    【讨论】:

    • 不工作。这应该放在 domain2 的 .htaccess 上吗?
    • @MihaelaGurgu,你只需要用这个替换你的第二行。这个想法是$ = ()中匹配的内容
    • RewriteEngine On RewriteRule ^(.*)\.html$ http://www.domain2.com/$1 [R=301,L] 有了这个,我仍然得到那个 .html ,这将导致登陆域出现 404 错误:( 不过,我检查了:htaccess.madewithlove.be 并且结果应该是......仍然,实际上没有正确重定向
    【解决方案2】:

    您可以调整您的正则表达式以仅匹配 .html 之前的部分:

    RewriteEngine On
    
    # to redirect .html URLs
    RewriteRule ^(.+?)\.html$ http://www.domain2.com/$1 [R=301,L,NC]
    
    # to redirect other URLs
    RewriteRule ^(.*)$ http://www.domain2.com/$1 [R=301,L]
    

    【讨论】:

      猜你喜欢
      • 2015-04-30
      • 1970-01-01
      • 1970-01-01
      • 2015-05-04
      • 2014-09-24
      • 2013-07-17
      • 2011-07-30
      • 2010-12-27
      • 2015-12-19
      相关资源
      最近更新 更多