【问题标题】:How to pass a second parameter using .htaccess to a php code?如何使用 .htaccess 将第二个参数传递给 php 代码?
【发布时间】:2019-04-03 12:57:51
【问题描述】:

我正在使用带有 .htaccess 的友好 url 编写我的 api 来进行重定向。

当我需要传递第二个参数时,我遇到了问题

我的 .htaccesss 文件如下所示:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

RewriteRule ^mesas\/?([0-9]+)\/?(.+)\/?$ mesas.php?status=$1
RewriteRule ^statusmesa\/?([0-9]+)\/?(.+)\/?$ statusmesa.php?idmesa=$1&status=$2

当我使用statusmesa/2/3 调用statusmesa 时,它会作为第一个参数2 和第二个参数3.php/2/3 返回

我的规则有什么问题?

请注意,文件 .htaccss 有多个路由的多个规则

【问题讨论】:

  • 它们都应该在 PHP 文件的 $_GET 数组中。
  • 不,第一个和第二个参数使用$_GET到$var,我不使用数组
  • 如果你打电话给statusmesa/2/33.php 是从哪里得到重写的?另外,您的规则没有 [L] 标志来停止处理规则集?
  • 像这样:RewriteRule ^statusmesa\/?([0-9]+)\/?(.+)\/?$ statusmesa.php?idmesa=$1&status=$2 [L] ?

标签: php json .htaccess url-rewriting url-redirection


【解决方案1】:

问题解决了!

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)/$  /$1 [L,QSA]

RewriteRule ^mesas\/?([0-9]*)?$ mesas.php?status=$1
RewriteRule ^statusmesa/([0-9-]+)/([0-9]+)/?$ statusmesa.php?idmesa=$1&status=$2 [NC]

【讨论】:

    猜你喜欢
    • 2013-12-09
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    • 2011-03-08
    • 2019-07-05
    • 1970-01-01
    • 1970-01-01
    • 2022-07-10
    相关资源
    最近更新 更多