重写长URL的规则

时间:2014-10-21 12:02:31

标签: php apache .htaccess mod-rewrite redirect

我正在遵循重写规则广告

RewriteEngine On
RewriteCond ${REQUEST_URI} ^.+$
RewriteCond %{REQUEST_FILENAME} \.(gif|jpe?g|png|js|css|swf|php|ico|txt|pdf|xml)$ [OR]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^ - [L]

RewriteRule ^(.*)/(.*)/?$ index.php?rt=$1/$2  [L]
RewriteRule ^(.*)/(.*)/(.*)/?$ index.php?rt=$1/$2/$3  [L]

如果网址为http://www.example.com/manage/ne/new?query=123 means,我会在php中使用“$ _GET”获取在网址中传递的“查询”值。

它重定向,如“http://www.example.com/index.php?rt=manage/ne/new

但我需要的是http://www.example.com/index.php?rt=manage/ne/new&query=123

任何人都可以帮我解决有关Htacces的问题。

1 个答案:

答案 0 :(得分:1)

底部2规则中需要QSA个标记:

RewriteRule ^([^/]+)/(.+)/?$ index.php?rt=$1/$2  [L,QSA]
RewriteRule ^([^/]+)/([^/]+)/(.+)/?$ index.php?rt=$1/$2/$3  [L,QSA]

QSA(查询字符串追加)标志在添加新查询参数时保留现有查询参数。