Turn text after slashes into variables with HTACCESS

后端 未结 2 809
清酒与你
清酒与你 2020-12-11 06:46

I need to pass 3 variables with a URL but using slashes. So for example I would use this URL:

http://www.example.com/variable1/variable2/variable3

I have thi

相关标签:
2条回答
  • 2020-12-11 07:01

    You might find it easier to grab the parameters in the .php file, via:

    $pathinfo = isset($_SERVER['PATH_INFO'])
        ? $_SERVER['PATH_INFO']
        : $_SERVER['REDIRECT_URL'];
    
    $params = preg_split('|/|', $pathinfo, -1, PREG_SPLIT_NO_EMPTY);
    
    echo "<pre>";
    print_r($params);
    

    So calling the script with this:

    http://www.example.com/variable1/variable2/variable3

    would return:

    Array
    (
        [0] => variable1
        [1] => variable2
        [2] => variable3
    )
    

    This will work for both:

    http://www.example.com/variable1/variable2/variable3 and http://www.example.com/process.php/variable1/variable2/variable3

    0 讨论(0)
  • 2020-12-11 07:15

    You are only capturing one variable in your rewrite rule.

    You need something like:

    RewriteRule ^([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/?$ process.php?width=$1&height=$2&third=$3 [QSA,L]
    

    or, a bit shorter:

    RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/?$ process.php?width=$1&height=$2&third=$3 [QSA,L]
    

    (the \w word character includes letters, digits and underscores)

    I have made only the ending slash optional so this rewrite rule would only do something if there are exactly 3 variables.

    0 讨论(0)
提交回复
热议问题