.htaccess在first&;操作人员


.htaccess rewrite rule break string on first & operator

这是我的代码

RewriteEngine on
RewriteRule ^public/p-(.*)'&(.*)?$ public/index.php?page=$1.php&$2 [NC,L] 
RewriteRule ^public/p-(.*)$ public/index.php?page=$1.php

这是URL

http://localhost/riviera/public/p-job-steps&job_id=7&step=1

输出为

Array ( [page] => job-steps [job_id] => 7.php [step] => 1 ) 

我只想把".php"附加到第一个参数

我浪费了4-5个小时来实现这个目标,我不想修改我正在构建的应用程序的url结构。请帮帮别人!

有一个名为QSA的简单标志,它将为您完成所有工作。

在htaccess中写入以下内容:

RewriteEngine on
RewriteRule public/p-(.*) public/index.php?page=$1.php [NC,QSA,B]

我测试了它,它给出了:

Array
(
    [page] => job-steps.php
    [job_id] => 7
    [step] => 1
)

当url为:时

http://localhost/riviera/public/p-job-steps?job_id=7&step=1

出于安全考虑,您应该添加B。