【问题标题】:htaccess dynamic rewrite rulehtaccess 动态重写规则
【发布时间】:2013-12-05 15:55:25
【问题描述】:

我有一些请求参数,我将它们转换为友好的 URL

例如:

http://domain.com/members/girls/sort/last_reg/nick/ted/from/18/to/28/hfrom/150/hto/190/bbody/Athletic/

参数是动态的,所以 URL 可以是

http://domain.com/members/girls/nick/ted/from/18/to/28/hfrom/150/hto/190/bbody/Athletic/

http://domain.com/members/men/nick/ted/to/28/hfrom/150/hto/190/bbody/Athletic/

参数成对

parameter_name/parameter_value

唯一不变的是

http://domain.com/members/

如何将此 URL 转换为

http://domain.com/filename.php?sex=men&pram1=value1&param2=value2 ......

http://domain.com/filename.php?sex=girls&pram1=value1&param2=value2 ......

【问题讨论】:

    标签: php regex apache .htaccess mod-rewrite


    【解决方案1】:

    将此代码放入您的DOCUMENT_ROOT/.htaccess 文件中:

    RewriteEngine On
    
    ## recucrsion based rule to convert 
    ## /members/men/n1/v1/n2/v2 to /members.php?n2=v2&n1=v1&sex=men
    
    RewriteRule ^(members)/(girls|men)(/.*)?$ /$1/$3?sex=$2 [L,QSA,NC]
    
    RewriteRule ^(members)/([^/]*)/([^/]*)(/.*)?$ /$1/$4?$2=$3 [L,QSA,NC]
    
    RewriteRule ^(members)/?$ /$1.php [L,NC]
    

    【讨论】:

    【解决方案2】:

    这可能会有所帮助:

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/(.*)/(.*)/(.*)/$ filename.php?$1=$2&$3=$4 [L,QSA]
    

    【讨论】:

      猜你喜欢
      • 2014-02-02
      • 1970-01-01
      • 1970-01-01
      • 2011-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多