如何使用htaccess写一个规则来隐藏url参数

时间:2015-01-29 06:49:19

标签: php regex .htaccess url-rewriting

我正在尝试使用htaccess重写URL。 我需要

1>   temp.example.com/save.php?item=xxxxx&id=xxx&type=1 
2>   temp.example.com/save.php?item=xxxxx&id=xxx&type=2 

就像

1>   temp.example.com/save/xxxxx/xxx
2>   temp.example.com/save/xxxxx/xxx

必须隐藏最后一个参数。

我的htaccess有

RewriteCond %{THE_REQUEST} \s/save\.php\?item=([_0-9a-zA-Z-]+)\s&id=([_0-9a-   zA-Z-]+)\s&type=([_0-9a-zA-Z-]+)\s [NC]
RewriteRule ^temp/save/%1/%2/%3? [R=301,L]
RewriteRule ^temp/save/([_0-9a-zA-Z-]+)$/([_0-9a-zA-Z-]+)$/([_0-9a-zA-Z-]+)$ /save.php?item=$1&id=$2&type=$3 [L] 

由于

2 个答案:

答案 0 :(得分:1)

您可以在root .htaccess中使用这些规则:

RewriteCond %{THE_REQUEST} /save\.php\?item=([^\s&]+)&id=([^\s&]+)&type=([^\s&]+)\s [NC]
RewriteRule ^ save/%1/%2/%3? [R=302,L]

RewriteRule ^save/([\w-]+)/([\w-]+)/([\w-]+)/?$ save.php?item=$1&id=$2&type=$3 [L,QSA,NC]

答案 1 :(得分:0)

RewriteEngine On

RewriteRule ^ save.php /([a-zA-Z0-9 _-] +)/(。)/(。)$ /save.php?id=$1&order_id= $ 2& page_no = $ 3 [L] RewriteCond%{REQUEST_FILENAME}!-d RewriteCond%{REQUEST_FILENAME} .php -f RewriteRule ^(。*)$ $ 1.php

现在您可以通过传递来访问三个参数 temp.example.com/save/par1/par2