php - 使用两个 get 参数清理 php 中的 url

标签 php .htaccess clean-urls

我正在编写一个使用干净 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/

相关文章:

php - WooCommerce:在购物车页面上移动优惠券字段

php - script_loader_tag 函数是如何工作的?

php - 当我在 .htaccess 中使用/(斜杠)时,css、js 和图像不起作用

java - 如果 URL 中没有应用程序上下文,我如何使用 Weblogic (12 C)?

php - 在 Laravel 中,如何在测试时给服务容器另一种实现?

.htaccess - 捕获所有重定向

apache - 使用一个 301 重定向重定向到 https 和 www

controller - 在 codeigniter 中创建动态 url

drupal - 从 6.12 升级到 6.15 后无法在 Drupal 上启用 Clean URL

php curl 多部分/表单数据 : file content not posted