基于asp查询重写asp到php

时间:2015-07-17 02:29:48

标签: php mod-rewrite redirect asp-classic

我已经看到了几个类似的问题并尝试了所有解决方案,但不知所措。我需要重定向

example.com/products.asp?lob=health

example.com/services/healthcare/

我需要为几个lob = 不同的值执行此操作。有没有办法可以重定向每个网址。也许在lob上做某种重写条件,但如果lob = health的值,则重定向到这里。如果它等于home,重定向到其他地方?

2 个答案:

答案 0 :(得分:0)

不确定这是“正确”的方法,但它有效。

RewriteCond %{QUERY_STRING} ^lob=value1$ [NC]
RewriteRule ^products.asp$ http://example.org/sample/one/? [R=301,L]

然后换一个不同的值:

RewriteCond %{QUERY_STRING} ^lob=value2$ [NC]
RewriteRule ^products.asp$ http://example.org/sample/two/? [R=301,L]

然后对于与值不匹配的所有内容:

RewriteRule ^products\.asp$ [insert new url here] [R=301,L]

如果您只想将.asp网址重定向到.php,最后一个示例也可以使用。请记住,我有其他条件和规则正在删除.php扩展名并添加/到所有文件:

 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^([^/]+)/$ $1.php
 RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
 RewriteRule (.*)$ /$1/ [R=301,L]

答案 1 :(得分:0)

如果仅查看查询字符串值然后重定向,请尝试...

   Dim theVal, newURL
   If Request("lob") <> "" Then
      theValue = LCase(Request("lob"))
   Else
      theValue = "none"
   End If

   Select Case theValue
      Case "health"
         newURL = "example.com/services/healthcare/"
      Case "law"
         newURL = "example.com/services/legal/"
      Case Else
         newURL = "example.com/services/listing/"
   End Select

   Response.Redirect newURL

希望这有帮助。