PHP url路由有3个参数

时间:2014-06-03 22:56:39

标签: php .htaccess mod-rewrite

所以我的框架通过一个index.php页面处理所有URL。如果我放了site.com/profile/user,它将转到site.com/index.php?url=profile&next=user和参数" url"加载不同的页面例如/ home将是index.php?url = home

现在的问题是我不会在htaccess文件中扩展我的重写规则,所以我还有一个额外的参数,例如site.com/profile/user/auctions,它看起来像site.com/index.php ?URL =简档&安培;下一=用户安培;类别=拍卖

我的重写规则如下:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^]+)/([^/]+)(/([^/]+))?$ index.php?url=$1&next=$2

所以问题是我无法添加额外的"类别"参数哪个是index.php?url = $ 1& next = $ 2& category = $ 3,每当我改变规则时,一个参数都有效,但其他参数不适用。

感谢您阅读,我希望能够解决。

1 个答案:

答案 0 :(得分:0)

试试这个:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /index.php?url=$1&next=$2&category=$3 [L]

我从我自己的.htaccess文件中获取此规则,只重命名变量,因此它必须有效。 如果原因只是在这个文件当然