.htaccess使用get参数重写url使用PHP

时间:2017-10-28 14:18:14

标签: php apache .htaccess mod-rewrite

我的网址如下:

search.php?tmp=Hello&A=&B[]=12&B[]=14&vars=100

OR

search.php?tmp=Hello&A=&B[]=1&B[]=14&B[]=4785&vars=100&cat=PC

(参数不稳定) 我希望如此:

search/Hello/&A=&B[]=12&B[]=14&vars=100
search/Hello/&A=&B[]=1&B[]=14&B[]=4785&vars=100&cat=PC

我已经尝试过并且工作正常

<IfModule mod_rewrite.c>

    RewriteEngine on
    RewriteBase /

    # internal forward

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.+?)/(.+?)/(.+?)\/?$ search.php?tmp=$1&$2 [NC]
   # external rewrite

    #RewriteCond %{THE_REQUEST} search\.php\?tmp=([^\s]+) [NC]
    #RewriteRule ^ /search/%1? [R=302,L]

    RewriteCond %{THE_REQUEST} /search\.php\?tmp=([^\s&]+)&(.*)  [NC]
    RewriteRule ^ /search/%1/%2? [R=302,L]
</IfModule>

问题我想用GET方法得到相同的参数。 但是print_r的输出($ _ REQUEST);

Array ( [tmp] => search [hello] => ) 

我想要输出

Array ( [tmp] => Hello [A] => [B] => Array ( [0] => 1 [1] => 14 [2] => 4785 ) [vars] => 100 )

任何人都可以帮我吗?谢谢。

1 个答案:

答案 0 :(得分:-1)

所以你想按数字升序对数组$B进行排序吗?

这是一个命令,没有奖品可以猜测它叫什么。跑吧:

sort($B);