我正在尝试设置一个更友好的 URL 系统,但不幸地失败了。我希望能够像这样传递 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
关于.htaccess - htaccess 两个参数 mod-rewrite 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10358229/