当前位置: 首页 > 面试题库 >

.htaccess RewriteRule保留GET URL参数

钱振
2023-03-14
问题内容

htaccess url重写后,保持URL的参数正常工作时出现问题。

我的htaccess重写如下:

 RewriteEngine on
 RewriteRule ^([a-z]{2,2})/([a-zA-Z0-9_-]+)$ index.php?lang=$1&page=$2

意思是:

domain.com/index.php?lang=en&page=product 显示为 domain.com/en/product

出于某种原因,当我?model=AB123&color=something在URL的末尾添加a
$_GET['model']$_GET['color']即使显示的URL中存在这些参数,也无法使用php检索这些参数。

为什么不传递变量?


问题答案:

您需要附加[QSA](查询字符串附加)标签。尝试

RewriteEngine on
RewriteRule ^([a-z]{2,2})/([a-zA-Z0-9_-]+)$ index.php?lang=$1&page=$2 [QSA]

参见http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html



 类似资料:
  • 下表为PC标签保留参数表,几乎所有的PC标签都支持这些保留参数设置 变量名 默认值 说明 action null 本参数的值表示为操作事件,模型类PC标签必须使用包含本参数,以说明要进行的操作。 cache 0 缓存存储时间(单位秒) num 20 获取记录的条数,最后会被模板引擎处理成limit传送到处理函数中。 page null 当前分页。一般填写为$_GET[page] urlrule n

  • 问题内容: 我正在制作一个bash脚本,该脚本将打印并将复杂的参数传递给另一个外部程序。 我该如何打印原始参数: 使用并删除可能引起不良结果的单引号。我的脚本不需要解析每个参数。我只需要打印/记录参数字符串,然后将其确切地传递给另一个程序。 我知道我可以使用类似的东西来避免引号, 但是我不能保证用户会这样做。 问题答案: 在将参数传递到脚本之前,引号已被删除,因此保留它们为时已晚。您可以做的是在将

  • 问题内容: 在我的React应用程序中,我有一些用户进入应用程序的参数,这些参数提供有关它们来自何处的一些信息。有没有一种方法可以使用react- router在整个应用程序中保留这些查询参数。意思是每次更改路线时,Id都会像那些查询参数一样保留在url中。我看到的唯一示例是在路由之间传递查询参数,但没有为每个路由都保留它们。 问题答案: React-Router v3的解决方案: 我在Types

  • 问题内容: 分页时有什么方法可以保留我的GET参数。 我的问题是我有几个不同的网址,即 我应该如何在分页类中创建指向页面上具有不同页码的页面的链接,但仍然保留网址的其他部分? 问题答案: 简而言之,您只需解析URL,然后在最后添加参数,或者如果参数已经存在,则将其替换。 此示例代码需要用于和的PHP HTTP模块 。后者可以替换为第一个,如果没有安装模块,则可以使用PHP用户空间实现。 另一种选择

  • 问题内容: 我正在尝试使用with子句,并且希望能够以与清单中的元素相同的顺序返回结果。例如: 我希望他们以相同的顺序回来。理想的情况是,如果我能有一个这样的声明,那就太好了: 我已经看到了使用或关键字定义某种自定义排序的查询示例。但是,在所有这些示例中,它们的顺序都是针对一组预定的选项。鉴于我的订购完全取决于用户输入的搜索条件,因此可能有2个选项的列表或100个要订购的列表… 有任何想法吗?我不

  • 为了便于编程,CodeIgniter使用了一系列的函数和名称来完成操作。所以,有些名称不能被程序员使用。下面是不能被程序员使用的保留字列表。 控制器 因为你的控制器类将继承主程序控制器,所以你的函数命名一定不能和主程序控制器类中的函数名相同,否则你的局部函数将会覆盖他们。下面列出了已经保留的名称,请不要将你的控制器命名为这些: Controller CI_Base _ci_initialize D