.htaccess如果正则表达式不匹配,如何重定向

时间:2013-02-18 05:52:37

标签: .htaccess mod-rewrite

如果正则表达式与

不匹配,我该如何进行重定向?
RewriteEngine On    # Turn on the rewriting engine
RewriteRule    ^test/(admin)/([A-Z]{2}[0-9]{3})/(xml|json)$    http://localhost/username/index.php?type=$1&id=$2&format=$3  [L]
RewriteRule    ^test/(home|member)/([0-9]+)/(xml|json)$    http://localhost/username/index.php?type=$1&id=$2&format=$3  [L]
RewriteRule    ^test/.*$   http://localhost/username/error.php  [L]

如果[AZ] {2} [0-9] {3}不匹配,我将重定向到error.php页面,代码id表示无效输入,RewriteRule ^ test /.*$ localhost / username / error.php [L]这将是错误的url路径的错误。

示例:

如果用户输入localhost / username / test / admin / TA123 / xml,如果用户输入localhost / username / admin / 123 / xmlll,这将有效,这将重定向到error.php,代码为500输入错误

如果用户输入localhost / username / test / guest,这将重定向到error.php,代码为501错误的网址

如果用户输入localhost / username / test / home / TA123 / xml,这将重定向到error.php,代码为502输入错误

1 个答案:

答案 0 :(得分:1)

这样的事情:

RewriteCond %{REQUEST_URI} ! ^[A-Z]{2}[0-9]{3}$
RewriteRule .* /error.php  [L]

RewriteCond充当后续RewriteRule的保护。