我正在编写一个使用干净 URI 的 PHP 脚本。
我的问题是,我有一个页面首先不使用 get 参数,然后是一个,最后是两个。
.htaccess
文件中的行当前如下所示:
RewriteRule ^birthing-records/([^/]+)/?$ birthing-records.php?url=$1 [L,QSA,NC]
但是如果我像这样添加第二个参数:
RewriteRule ^birthing-records/([^/]+)/([^/]+)/?$ birthing-records.php?url=$1&second=$2 [L,QSA,NC]
脚本将我重定向到错误页面。
我该如何设置?
对于这种情况,我需要在 .htaccess
中添加两行吗?
我通常会通过简单地调用另一个页面来解决这个问题,但我想保留我现在使用的确切 URI,因为所有这些页面都在 Google 上建立了索引。我真的很感激任何帮助。
最佳答案
每个规则都需要一个规则,否则每当您输入一个参数时它就会破坏。
RewriteRule ^birthing-records/([^/]+)/?$ birthing-records.php?url=$1 [QSA,NC]
RewriteRule ^birthing-records/([^/]+)/([^/]+)/?$ birthing-records.php?url=$1&second=$2 [L,QSA,NC]
感谢 @Martin 的注释:第一个选项的 L 选项已被删除,因为 L 选项指示要运行的最后一条规则(只有一个规则可以与 L 选项一起存在)
否则,据我所知,它们各自工作正常,但如果您想接受 1 或 2 个参数,那么您需要两个规则。
您可以在这里测试 htaccess 内容: http://htaccess.mwl.be/
关于php - 使用两个 get 参数清理 php 中的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35213919/