2016-07-26 128 views
0

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

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

有什么建议吗?

回答

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] 
+0

在此URL,任何字符串与任何-ID将是这将得到自动改变的动态值,你认为这是写在正确的方式? @ error2007s – Kapil

+0

上面是正确的。 – error2007s

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]