重写URL参数

时间:2011-10-26 05:28:38

标签: php .htaccess url url-rewriting query-string

所以我有一个脚本(用PHP编写)发布参考号和邮政编码的用户输入,然后将用户重定向到带有URL参数的页面,如下所示:

  

http://mydomain.com/data.php?reference=REF1234&postcode=LE1FEH

data.php脚本将根据URL参数从数据库中获取数据,现在我想隐藏用户视图中的参数 - 既防止SQL注入又使URL更简单。我不想直接隐藏URL中输入的数据。苹果似乎是我能找到的唯一一个这样做的地方 - 在他们的网址中你可以看到订单号和邮政编码,但没有等号或任何东西,如下:

  

https://store.apple.com/uk/order/guest/ordernumber/postcode

无论如何都要这样做?

(我不确定你是否会将其列为加密或不加密,所以我很难找到任何有用的文章以及措辞好 - 所以如果它有点令人困惑我很抱歉)

2 个答案:

答案 0 :(得分:1)

请使用.htaccess

Options +FollowSymLinks  
RewriteEngine on    
RewriteRule ^([a-z0-9A-Z]+)/([a-z0-9A-Z]+)$ ./data.php?reference=$1&postcode=$2 [NC]

您的网址http://mydomain.com/REF1234/LE1FEH将被视为http://mydomain.com/data.php?reference=REF1234&postcode=LE1FEH,您可以通过GET方法获取值。

了解更多info

答案 1 :(得分:0)

您需要使用.htaccessmod_rewrite来执行此操作。但请记住,它与“正常”URL一样容易受到SQL注入攻击,并且在最小的错误中更容易出现内部服务器错误。我个人会建议不要使用这种方法,除非用户可能希望轻松共享网址,但无论您选择做什么,都要确保始终防止注射。