URL重写变量名称

时间:2011-09-28 03:44:47

标签: .htaccess url-rewriting

我正在尝试重写一个URL,以便传递的变量替换为新的id,例如;

wwww.domain.com/default.php?s=1&lang=en

要改写为:

www.domain.com/default.php?id=1$lang=en

s变量被替换为id

我试过了:

RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteCond %{QUERY_STRING} ^s=(.+)$
RewriteRule ^s=(.+)$ id=$1 [R,NC,L]

RewriteRule ^s=(.+)$ id=%1 [R,NC,L]

没有运气......我做错了什么?

感谢您的帮助!!

2 个答案:

答案 0 :(得分:1)

即使您没有s作为第一个变量,这也应该有用。 (不确定你真正想要的是什么。)

Options +FollowSymlinks
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.*&)*s=(.*)(&*)$
RewriteRule ^default.php$ default.php?%1&id=%2%3

答案 1 :(得分:0)

试试这个:

RewriteRule ^default.php?s=([0-9]+)&lang=en$ default.php?id=$1&lang=en

编辑。 更通用的版本。

RewriteRule ([^?]+)?s=([0-9]+)&lang=([A-z]{2})$ $1?id=$2&lang=$3