【问题标题】:How to use .htaccess rewrite rule to simulate routing with no framework?如何使用 .htaccess 重写规则来模拟没有框架的路由?
【发布时间】:2014-12-24 05:04:25
【问题描述】:

我知道的所有 PHP 框架都使用路由。

我的目标是在没有任何框架的情况下使用该路由技术: 前任: 而不是有类似的东西:

viewProfil.php?username=tom&id=10

我想要那个

viewProfil/tom/10

(对于任意数量的 get 参数)

所以我可以挂在 viewProfil.php 中

$username = $_GET[0];
$id = $_GET[1];

这样的事情可能吗?

【问题讨论】:

    标签: php regex .htaccess


    【解决方案1】:

    你可以用这个

    Options +FollowSymLinks
    RewriteEngine On
    RewriteRule ^viewProfil/(.*)/([0-9]+)$ viewProfil.php?username=$1&id=$2 [L]
    

    要获取更多示例,请参阅本教程:Advanced .htaccess examples

    【讨论】:

    • 问题是路由任意数量的get参数
    • “任意数量的获取参数”和任意页面
    【解决方案2】:

    将以下内容添加到您的 .htaccess 文件中

    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /
    
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ index.php?q=$1 [L]
    </IfModule>
    

    然后,在php中:

    $params = explode('/', $_GET['q']);

    【讨论】:

    • 这适用于任何页面吗?并带有任意数量的参数?
    • 是的,你可以在任何页面上使用它(如果我理解正确的话)
    猜你喜欢
    • 1970-01-01
    • 2012-09-25
    • 2013-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-01
    • 2011-12-07
    • 2014-09-25
    相关资源
    最近更新 更多