我试图建立一个更友好的网址系统,但失败惨重。我希望能够传递1或2个get参数,如下所示:

http://website.com/1234/123456

其中,1234是第一个参数,123456是第二个参数。
在我的尝试中,apache一直将/1234/视为一个文件夹和一个参数。到目前为止,我一直在尝试:
RewriteRule ^([^/]*)/([^/]*)$ index.php?id=$1&pa=$2 [L]


RewriteRule ^(.*)/(.*)$ index.php?id=$1&pa=$2
RewriteRule ^(.*)$      index.php?id=$1 [L]

最佳答案

你可以这样做:

RewriteEngine On
RewriteRule ^/?index\.php$ - [L]
RewriteRule ^/?(?:([^/]*)(?:/([^/]*)/?)?)?$ /index.php?id=$1&pa=$2 [L]

有点严格和混乱,所以你可以试试:
RewriteEngine On
RewriteRule ^/?index\.php$ - [L]
RewriteRule ^/?(([^/]*)(/?(.*)))?$ /index.php?id=$2&pa=$4 [L]

这将使所有内容都超过最后一个,因此host.com/123/1233/56将重写为host.com/index.php?id=123&pa=1233/56,而第一个不会重写,因为56

08-25 15:39
查看更多