0

我的搜索 url 很长,如何使用 php 和 mod_rewrite 将其更改为短 url firndly url?

我的网址:

mydomain.com/gosearch.php?page=1&random=742&title=test&loc1=ANY&loc2=ANY&loc3=ANY&t=ALL&st=3&app=5&image=ALL

我喜欢:隐藏在页码之后(前为 1)

     mydomain.com/search/1/

或者

     mydomain.com/search/1/742/test/ANY/ANY/ANY/ALL/3/5/ALL

谢谢。

4

1 回答 1

3

你可以做这样的事情

RewriteEngine On
RewriteRule ^search/(.*)/(.*)/ /gosearch.php?page=$1&random=$2 [L]

但它可能会变得非常丑陋,并且最多只能使用 9 个参数

更好的方法是将所有要搜索的流量重定向到 php 脚本 (gosearch.php),然后在 php 中解析请求和/或查询字符串并进行适当处理,例如

RewriteCond %{REQUEST_URI} ^/search(.*)$
RewriteRule . /gosearch.php [L, QSA]

然后在 gosearch.php

<?php

    $paramaters = explode( '/', $_SERVER['REQUEST_URI'] );

    print_r( $parameters );
?>

从那里拿走

psQSA将添加来自 /search/1/ 的任何查询字符串,因此可以通过$_GET/以通常的方式访问查询参数$_REQUEST

于 2012-04-13T10:56:24.570 回答