动态url到静态url重写和重定向

时间:2016-07-26 15:34:55

标签: .htaccess url redirect mod-rewrite

我有一个基于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]

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

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

更改.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]

答案 1 :(得分:0)

添加另一个重写规则以最终处理动态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]