我需要一个简单的正则表达式来匹配asp页面并将它们重定向到另一个页面。
例如
/showdetails.asp?id=1334
到
/page-redirect.php?page=showdetails&id=1334
这是我到目前为止似乎没有用的东西
RedirectMatch 301 ^/(.*)\.asp?id=(.*)$ /page-redirect.php?page=$1&id=$2
其中
RedirectMatch 301 ^/(.*)\.asp$ /page-redirect.php?page=$1
确实有用。
RedirectMatch 301 ^/(.*)\.asp\?id=(.*)$ /page-redirect.php?page=$1&id=$2
答案 0 :(得分:0)
此致
301 ^/(.*)\.asp?id=(.*)$ /page-redirect.php?page=$1&id=$2
正确
301 ^/(.*)\.asp\?id=(.*)$ /page-redirect.php?page=$1&id=$2
考虑
301 ^/([^/]+)\.asp\?id=(\d+)$ /page-redirect.php?page=$1&id=$2
答案 1 :(得分:0)
可能会逃离?
中的asp?id
。
答案 2 :(得分:0)
你使用RedirectMatch
指令无法匹配查询字符串,因此所提出的解决方案都不起作用。
您需要使用基于mod_rewrite
的规则..
RewriteEngine On
RewriteCond %{QUERY_STRING} ^id=([^&]+)$ [NC]
RewriteRule ^([^.]+)\.asp$ /page-redirect.php?page=$1&id=%1 [L,NC,R=301]