.htaccess使用文件路径作为参数重写

时间:2015-07-23 17:28:15

标签: .htaccess mod-rewrite

我有以下工作:

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]之前和之后)

我希望有人可以帮我解决这个问题,或者给我另一种方法。

1 个答案:

答案 0 :(得分:1)

这应该有效:

RewriteRule ^admin/([^/]*)/([^/]*)/([^/]*)/?$ /private/admin/index.php?path=$1/$2&id=$3 [L,QSA]