.htaccess重写规则首先打破字符串&操作者

时间:2012-09-08 08:41:50

标签: php regex .htaccess mod-rewrite url-rewriting

这是我的代码

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

这是网址

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个小时来实现这个目标,我不想修改我正在构建的app的url结构。 请帮助别人!

1 个答案:

答案 0 :(得分:0)

有一个名为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
)

当网址为:

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

出于安全原因,您应该添加B