我有以下工作:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
### Rewrite url ###
# Basic rewrite for pages in the admin area
RewriteRule ^admin/([a-z/]*)$ /private/admin/index.php?path=$1 [L,QSA]
因此,网址可能类似于:admin/overview/overview
制作overview/overview
路径。这工作正常但现在我想添加另一个参数用作id(用于删除/编辑)。因此添加了以下规则:
RewriteRule ^admin/([a-z/]*)/([a-zA-Z0-9]*)$ /private/admin/index.php?path=$1&id=$2 [L,QSA]
这显然不起作用:admin/overview/overview/34
因为admin/
后面的所有内容都被视为包含34
的路径。但是当我尝试时:
RewriteRule ^admin/([a-z/]*)-([a-zA-Z0-9]*)$ /private/admin/index.php?path=$1&id=$2 [L,QSA]
制作网址admin/overview/overview-34
仍然无效。我还尝试将线放在不同的位置(RewriteRule ^admin/([a-z/]*)$ /private/admin/index.php?path=$1 [L,QSA]
之前和之后)
我希望有人可以帮我解决这个问题,或者给我另一种方法。
答案 0 :(得分:1)
这应该有效:
RewriteRule ^admin/([^/]*)/([^/]*)/([^/]*)/?$ /private/admin/index.php?path=$1/$2&id=$3 [L,QSA]