代码之家  ›  专栏  ›  技术社区  ›  Paul Grigoruta

重写所有URL

  •  3
  • Paul Grigoruta  · 技术社区  · 16 年前

    我想重写如下内容:

    http//www.example.com/index.php?var1=val1&var2=val2&var3=val3

    http://www.example.com/var1/val1/var2/val2/var3/val3/

    我在寻找一个解决方案来处理任意数量的变量。能做到吗?

    2 回复  |  直到 16 年前
        1
  •  4
  •   Community Mohan Dere    8 年前

    看看这个问题: Can mod_rewrite convert any number of parameters with any names?

    My answer 也可用于您的案例:

    $_SERVER['REQUEST_URI_PATH'] = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
    $segments = explode('/', trim($_SERVER['REQUEST_URI_PATH'], '/'));
    for ($i=0, $n=count($segments); $i<$n; $i+=2) {
        $_GET[rawurldecode($segments[$i])] = ($i+1 < $length) ? rawurldecode($segments[$i+1]) : null;
    }
    

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^ index.php [L]
    

    index.php .

        2
  •  0
  •   Andru Luvisi    16 年前

    对。诀窍是写一个 RewriteRule

    以下可能是一个很好的开始:

    RewriteRule ^/index.php - [chain]
    RewriteRule ^(.*)[=&](.*)$ $1/$2 [next]
    RewriteRule ^/index.php\? "/"
    

    推荐文章