【问题标题】:dynamic url to static url rewrite and redirection动态 url 到静态 url 重写和重定向
【发布时间】:2016-12-01 01:27:08
【问题描述】:

我有一个基于 php 的动态网站。 所以我只想知道如何自动重定向这个 url

/convert.php?id=any-id&v=any-string [L]

/tutorial/any-string/any-id.html

我创建了以下 htaccess 代码

Options +FollowSymlinks
RewriteEngine on
RewriteOptions inherit
RewriteRule ^videos/([^/]*)\.html$ /search.php?s=$1 [L]
RewriteRule ^tutorial/([^/]*)/([^/]*)\.html$ /convert.php?id=$1&v=$2 [L]

我能够获得该静态网址,但我想要的是如果有人在浏览器中输入动态网址,他/她应该会自动重定向新的静态网址。

有什么建议吗?

【问题讨论】:

    标签: .htaccess url redirect mod-rewrite


    【解决方案1】:

    最后添加另一个重写规则来处理动态URL:

    Options +FollowSymlinks
    RewriteEngine on
    RewriteOptions inherit
    
    RewriteRule ^videos/([\w-]+)\.html$ search.php?s=$1 [L,QSA,NC]
    
    RewriteRule ^tutorial/([^/]+)/([\w-]+)\.html$ convert.php?id=$1&v=$2 [L,QSA,NC]
    
    RewriteRule ^([\w-]+)/([\w-]+)\.html$ convert.php?id=$1&v=$2 [L,QSA,NC]
    

    【讨论】:

      【解决方案2】:

      更改您的 .htaccess 文件以反映以下规则,它将按您的意愿工作。

      Options +FollowSymlinks
      RewriteEngine on
      RewriteOptions inherit
      RewriteRule ^videos/([^/]*)\.html$ /search.php?s=$1 [L]
      RewriteRule ^tutorial/([^/]*)/([^/]*)\.html$ /convert.php?id=$1&v=$2 [L]
      RewriteCond %{QUERY_STRING} (^|&)id=any-id($|&)
      RewriteCond %{QUERY_STRING} (^|&)v=any-string($|&)
      RewriteRule ^convert\.php$ /tutorial/any-string/any-id.html? [L,R=301]
      

      【讨论】:

      • 在该 URL 中,any-string & any-id 将是动态值,会自动更改,您认为它的编写方式正确吗? @error2007s
      猜你喜欢
      • 2014-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-12
      • 1970-01-01
      • 2012-09-09
      • 2018-06-27
      相关资源
      最近更新 更多