【问题标题】:PHP url routing with 3 parameters带有 3 个参数的 PHP url 路由
【发布时间】:2014-06-03 22:56:39
【问题描述】:

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

现在的问题是我不会在 htaccess 文件中扩展我的重写规则,所以我还有一个额外的参数,例如 site.com/profile/user/auctions,它看起来像 site.com/index.php ?url=profile&next=user&category=auctions.

我的重写规则如下:

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 ,每当我更改规则时,一个参数有效,但其他参数无效。

感谢您的阅读,希望可以解决。

【问题讨论】:

标签: php .htaccess mod-rewrite


【解决方案1】:

试试这个:

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

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

【讨论】:

    猜你喜欢
    • 2017-08-10
    • 2015-10-06
    • 1970-01-01
    • 2017-03-03
    • 2015-06-12
    • 2018-08-31
    • 2018-04-22
    • 2015-09-30
    • 1970-01-01
    相关资源
    最近更新 更多