【问题标题】:.htaccess rewrite PHP $_GET multiple pages.htaccess 重写 PHP $_GET 多页
【发布时间】:2015-04-22 13:22:35
【问题描述】:

.htaccess

重写引擎开启 RewriteRule 注册 index.php?mode=register RewriteRule 登录 index.php?mode=login

index.php

    

这是我目前的方法(感谢@TROODON)。

有没有更简单的方法,也许使用键值数组来存储 index.php 将调用的各个页面的所有可能性?

谢谢

【问题讨论】:

    标签: php .htaccess mod-rewrite get


    【解决方案1】:

    对于您的.htaccess,您可以这样做:

    RewriteEngine ON
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?mode=$1 [L,QSA]
    

    但是,无论您从 $_GET['mode'] 获得什么,都不要将您的 PHP 代码更改为 include!这将允许用户随意添加。

    你可以像这样调整你的 PHP 代码:

    $pages = array("register" => "includes/register.php",
                   "login"    => "includes/login.php");
    
    if(isset($_GET['mode']) && $pages[$_GET['mode']])
        include $pages[$_GET['mode']];
    

    PS:两个RewriteCond 确保网址不是现有文件或文件夹(即,如果您有一个文件夹images,那么site.com/images 仍将转到该文件夹​​而不是index.php?mode=images .

    【讨论】:

    • 很抱歉长时间延迟接受这个答案,当我将它实施到我的系统中时,我必须确保它是从头开始的,它就像一个魅力......到目前为止!谢谢。
    猜你喜欢
    • 2015-06-30
    • 2011-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 2018-08-21
    相关资源
    最近更新 更多