using apache's mod_rewrite to parse SEO friendly URL's

后端 未结 2 679
青春惊慌失措
青春惊慌失措 2020-12-19 18:16

How do I convert something like

me.com/profile/24443/quincy-jones

to

me.com/profile.php?id=24443

or something

2条回答
  •  悲&欢浪女
    2020-12-19 19:19

    This should work for both:

    RewriteEngine on
    RewriteRule ^([^/]+)/([^/]+).*$ $1.php?id=$2 [L]
    

    Explanation:

    ^           - beginning of the string
    ([^/])      - first group that doesn't contain /
                  will match both 'profile' and 'store'
                  will also be referenced by $1 later
    /           - first slash separator
    ([^/])      - second group, id in your case
                  will be referenced by $2
    .*          - any ending of the request uri
    $           - end of request string
    

    You can also make it more precise so only the two request are rewritten and only digits are accepted as id:

    RewriteRule ^((profile|store))/(\d+).*$ $1.php?id=$2 [L]
    

提交回复
热议问题