使用.htaccess将标准请求Uri转换为Clean URL

时间:2010-10-14 11:29:31

标签: regex .htaccess clean-urls

我的网址格式如下:

http://domain.com/checkout/nonce/701fe0f652/order/108/?token=EC-0DS37792JX3680821

我尝试使用.htaccess:

将其转换为干净的网址
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?token=(.*)$ /index.php/$1/token/$2/ [R]

RewriteRule不知何故不起作用。我已经使用http://jakarta.apache.org/regexp/applet.html对其进行了测试,结果是完全匹配。

我正在使用CodeIgniter,并且已经测试直接放置干净的URL(http://domain.com/checkout/nonce/701fe0f652/order/108/token/EC-0DS37792JX3680821)没有任何问题。

有人能帮助我吗?

谢谢。

最好的问候。

1 个答案:

答案 0 :(得分:0)

我找到了答案

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} ^token=([a-zA-Z0-9\-]+)
RewriteRule ^([a-z0-9\/\-.]+)$ $1token/%1? [R=301,L]