【问题标题】:301 Redirect Links to Use .html Suffix301重定向链接以使用.html后缀
【发布时间】:2015-01-07 09:03:39
【问题描述】:

我想知道如何 301 重定向所有格式的网址

/search/(.*)

(其中(.*) 不以.html 结尾)

/search/$1.html

主要是我不太确定如何匹配最后没有 .html 的 url 结构,这是我的问题。

谢谢

【问题讨论】:

    标签: .htaccess mod-rewrite redirect url-rewriting http-status-code-301


    【解决方案1】:

    您可以使用%{REQUEST_URI} 作为条件来否定它,如下所示:

    RewriteCond %{REQUEST_URI} !^/search/([^.]+)\.html$ [NC]
    RewriteRule ^search/(.*)$ /search/$1.html [R=302,NC,L]
    

    我在上面的例子中使用了302,很简单,因为在测试时我总是使用 302 来确保它的工作,所以我不会被缓存,一旦你确认它工作,你可以安全地切换它到[R=301,NC,L]

    换句话说,如果 URL 不是 search/something.html,它将重定向到以 .html 结尾的版本。

    注意:请记住,您放置此规则的顺序以及您的系统/CMS(如果有)会影响您获得的结果。如果您之前尝试过 301 重定向,您也可能会被缓存,它也会影响结果。

    【讨论】:

      猜你喜欢
      • 2013-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-10
      • 1970-01-01
      • 2018-07-23
      • 1970-01-01
      相关资源
      最近更新 更多