如何配置xampp服务器默认打开php文件而不写.php扩展名

Posted

技术标签:

【中文标题】如何配置xampp服务器默认打开php文件而不写.php扩展名【英文标题】:how to configure xampp server to open php file by default without writing the .php extension 【发布时间】:2020-03-24 01:21:57 【问题描述】:

如何配置xampp服务器默认在浏览器中打开php文件而不在window 10中写.php扩展名

【问题讨论】:

google 的神奇关键字是 htaccess 和/或 mod_rewrite 这是通过将所有请求重定向到单个文件(例如 index.php)然后 index.php 读取 REQUEST_URI 以计算出它需要执行的控制器和操作来完成的 @zanderwar 但 .php 扩展名将保留,因为您的路由器只会重定向到另一个具有 .php 扩展名的 php 脚本;) 不,请看下面我的回答...有点粗糙且未经测试,但它应该可以工作,哈哈 这能回答你的问题吗? .htaccess doesn't work on xampp (windows 7) 【参考方案1】:

通过将所有请求重定向到单个文件(例如 index.php)然后 index.php 读取 REQUEST_URI 以计算出它需要执行的控制器和操作来完成

一个(非常粗略但)基本的示例,假设路由的构造类似于“/controller/action/otheraction”:

.htaccess(在项目根目录中)

RewriteCond %REQUEST_FILENAME -f [OR]
RewriteCond %REQUEST_FILENAME -d
RewriteRule ^.*$ index.php [NC,L]

index.php

<?php
// include the base controller
include 'Controller.php';

// split the request URI into parts
$request = explode('/', $_SERVER['REQUEST_URI']);

$controller = $request[0] ?: 'home'; // home is default
$action = $request[1] ?: 'index'; // index is default action
$otherAction = $request[2] ?: null; // whatever you want

// build the controller we need to instantiate
$controller_name = ucfirst($controller) . 'PageController';

// check it exists
if (file_exists($controllerName)) 
    include_once $controllerName . '.php';
 else 
    // some pretty 404 page
    die('404');


// instantiate the controller
$controller = new $controller();

// execute the action
$controller->doAction($action, $otherAction);

控制器.php

<?php

class Controller 

    public function doAction($action, $otherAction) 
    
        if (method_exists($this, $action)) 
            return $this->$action($otherAction);
        

        die('404 - Page Not Found');
    

HomePageController.php

<?php
class HomePageController extends Controller 

    public function index() 
    
        echo 'Hello World';
        exit;
    

然后你可以导航到http://localhost,你应该会看到“Hello World”

【讨论】:

以上是关于如何配置xampp服务器默认打开php文件而不写.php扩展名的主要内容,如果未能解决你的问题,请参考以下文章

如何使用xampp安装php程序

PHP 在xampp中为项目访问配置本地域名的方法

用 xampp 打开一个 php 文件

如何修改xampp的默认路径?

修改XAMPP的默认根目录

XAMPP修改Apache默认网站目录htdocs的详解