我目前用于查找用户的重写规则是:
RewriteRule ^admin/users/(.*)-([0-9]+)$ /index.php?hook=admin&url=users&search=$1&page=$2 [NC]
RewriteRule ^admin/users/(.*)$ /index.php?hook=admin&url=users&search=$1 [NC]
我可以找到
@username test
@email email@yahoo.com
@id 123
但是当我按id / admin / users / @ id- 755 搜索时, id被识别为页面
我想只有在包含2个短划线时才能首先访问重写 类似的东西
RewriteRule ^ admin / users /(。*)([ - {2}])([0-9] +)$
有人有想法吗? 感谢
@anubhava
所以我可以通过用户名,电子邮件或身份证找到
url.com/admin/users/@username-test
url.com/admin/users/@email-email@yahoo.com
或
url.com/admin/users/@id- 222 但此处的ID被识别为页面,我们也可以使用
这样的页面 ID-PAGE
| |
url.com/admin/users/@id- 222 -2,网址在网址中正常运行
答案 0 :(得分:1)
你的规则如下:
RewriteEngine On
# don't execute further rules for real files/directories
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^admin/users/(.*?-.*?)-([0-9]+)/?$ /index.php?hook=admin&url=users&search=$1&page=$2 [NC,L,QSA]
RewriteRule ^admin/users/(.+)$ /index.php?hook=admin&url=users&search=$1 [NC,L,QSA]