我想要这样的格式化URL:
https://www.example.com/view.php?id=1
其中:
"id" range: 1-99 (without leading "0" from 1 to 9)
"id": always lowercase, no "Id" or "ID" or "iD"
任何与此格式不同的内容都必须将其重定向到 www.example.com/view.php
错误网址的示例:
https://www.example.com/view.php?iD=1
https://www.example.com/view.php?Id=1
https://www.example.com/view.php?ID=1
https://www.example.com/view.php?id=1aaa
https://www.example.com/view.php?id=av1102
https://www.example.com/view.php?id=07
https://www.example.com/view.php?id=100
到目前为止,我有这个:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/view.php$
RewriteCond %{QUERY_STRING} ^(?!(id=[1-9][0-9]{0,1})$).*$
RewriteRule .* /view.php? [R=301,L]
但是它不起作用,或者没有重定向,或者我收到了众所周知的“ TOO MANY REDIRECTS”循环。
请帮助。
答案 0 :(得分:0)
您可以使用此:
RewriteEngine on
RewriteCond %{QUERY_STRING} .+
RewriteCond %{QUERY_STRING} !^id=([1-9]{1,2}|[1-9a-zA-Z]+) [NC]
RewriteRule ^.*$ /view.php? [L,R]
请确保在新浏览器中对此进行测试,或者清除浏览器缓存后再进行测试。