使用mod_rewrite将/?APP = XYZ& action =asdf¶ms= 123转换为/ XYZ / asdf?params = 123

时间:2012-02-22 00:10:07

标签: php apache .htaccess mod-rewrite

我正在尝试设置一个mod_rewrite,允许以下重定向:

  1. my-domain / login =>
    我的域/?动作=登录

  2. my-domain / login?param1 = xyz& param2 = asdf => ?我
    域/动作=登录&安培;参数1 = XYZ&安培; param2的= ASDF

  3. my-domain / MYAPP / login =>
    我的域/ APP = MYAPP&安培;行动=登录

  4. my-domain / MYAPP / login?param1 = xyz& param2 = asdf => ?我
    域/ APP = MYAPP&安培;动作=登录&安培; PARAMS = XYZ&安培; param2的= ASDF

  5. 到目前为止,我已经在我的.htaccess文件中了:

    RewriteEngine On
    RewriteRule ^([A-Z]*)/([a-z]*)$ ?APP=$1&action=$2 [L]
    

    这似乎适用于方案3和4但是它无法将$ _GET ['action']值传递给方案1和2中的脚本。

    编辑:将.htaccess更改为:

    RewriteEngine On
    RewriteRule ^([a-z]*)$ ?action=$1 [L,QSA]
    RewriteRule ^([A-Z]*)/([a-z]*)$ ?APP=$1&action=$2 [QSA]
    

    这似乎有效。

1 个答案:

答案 0 :(得分:0)

问题回答如上:

编辑:将.htaccess更改为:

    RewriteEngine On
    RewriteRule ^([a-z]*)$ ?action=$1 [L,QSA]
    RewriteRule ^([A-Z]*)/([a-z]*)$ ?APP=$1&action=$2 [QSA]