代码之家  ›  专栏  ›  技术社区  ›  Marcx

Htaccess重写规则

  •  0
  • Marcx  · 技术社区  · 14 年前

    我想了解它是如何工作的,我讨厌它,不管怎样这是我的问题。

    (对你们大多数人来说非常简单)

    我的网站有一个主页 index.php . 这是唯一的页面,所有其他页面都由这个页面处理。

    我做了一个简单的 RewriteRule

    RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?page=$1
    

    为此:

    /index.php?page=VAL -> /VAL
    

    /index.php?page=VAL&var1=VAL2&var2=VAL3 etc.
    

    我想要一个最终的网址,比如:

    /VAL/VAL2/VAL3 etc.
    

    谢谢

    1 回复  |  直到 14 年前
        1
  •  1
  •   Gumbo    14 年前

    你可以把请求改写成你的 并用PHP解析请求的URI路径:

    $_SERVER['REQUEST_URI_PATH'] = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
    $segments = implode('/', ltrim($_SERVER['REQUEST_URI_PATH'], '/'));
    

    规则是:

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

    这将重写每个请求,即URI路径不能映射到现有文件,到您的 索引.php