目前,mysite.com/profile 被重写为 mysite.com/profile.php。我还想以干净的格式传递参数,例如 mysite.com/profile/43/settings 到 mysite.com/profile.php?1=43&2=settings 和 mysite.com/thread/223/reply 将被写入 mysite .com/thread.php?1=223&2=回复。
问问题
15 次
1 回答
0
通常,为了启用这样的干净参数,您实际上不会使用不同的重写规则。您将使用完全相同的前端控制器重写规则将所有内容定向到profile.php
. 然后在脚本中,您可以将 URI 分解为特定的组件(例如,提供与特定资源不匹配的 URI 的适当标头)。
原因是重写规则不能很好地处理任意数量的参数。例如,如果您知道您将始终有两个参数,那么使用重写规则就很容易了,因为它很容易执行以下操作:
RewriteRule /?profile/(.*)/(.*) /profile.php?param1=$1¶m2=$2
但是,当您不知道要获得多少参数时,构建重写规则来处理这种情况会变得更加复杂。
最好建议您使用 PHP 路由器类(谷歌它,您应该找到很多选项或指导)来检查 URI 并采取适当的措施。
于 2013-02-05T23:25:12.713 回答