新版SP可以多入口吗,还是已指定唯一入口文件index.php?

#1 tanidea


有两个入口文件,index.php 和 admin.php
index.php代码
define('APP_DIR', realpath('./'));
require(APP_DIR.'/protected/lib/speed.php');
file_put_contents('file',var_export(get_included_files(),true));

运行 admin.php的同时,index.php也运行了,file文件被写入了
array (
  0 => 'D:\\WAMP\\www\\speed\\index.php',
  1 => 'D:\\WAMP\\www\\speed\\protected\\lib\\speed.php',
  2 => 'D:\\WAMP\\www\\speed\\protected\\config.php',
  3 => 'D:\\WAMP\\www\\speed\\protected\\controller\\MainController.php',
  4 => 'D:\\WAMP\\www\\speed\\protected\\controller\\BaseController.php',
  5 => 'D:\\WAMP\\www\\speed\\protected\\include\\functions.php',
  6 => 'D:\\WAMP\\www\\speed\\protected\\tmp\\60155440c01a7c960d42ccd04744cfd5.1466823477.layout.html.php',
  7 => 'D:\\WAMP\\www\\speed\\protected\\tmp\\cd30298c7f199ab9b41324e3c1d6341c.1467940570.main_index.html.php',
)
这可不是想要的。
统一入口可以,但一定要唯一入口吗?admin.php, member.php, download.php这样的呢?

想要添加多入口,如 admin.php (admin.php可以随便修改,让别人找不到后台登录网址)
不知道要怎么修改.htaccess 文件

是修改.htaccess文件好,还是修改config.php的rewrite数组好?jake


2016-07-11 09:49:22

#2 jake

多入口可以,但是配置起来挺麻烦的,建议是:
1. 只是如果要伪静态,那么只有一个入口设置成伪静态,另一个最好是参数URL的
2. 共用配置文件和其他文件,都要注意关联的影响。



另外,现在一般是用modules开发来代替多入口,可以试试https://github.com/SpeedPHP/manu ... %E5%9D%97modules.md

2016-07-11 10:34:23

#3 tanidea

jake 发表于 2016-7-11 10:34
多入口可以,但是配置起来挺麻烦的,建议是:
1. 只是如果要伪静态,那么只有一个入口设置成伪静态,另一个 ...
我现在做一个后台就是module方式的,protected/controller/admin
想让这个admin模块只能从admin.php进,index.php进的exit()掉,然后admin.php文件名随便改,但现在运行admin.php的同时index.php也运行了。
admin.php代码
define('APP_DIR', realpath('./'));
define('BIND_MODULE', 'admin');//只能访问admin模块
require(APP_DIR.'/protected/lib/speed.php');

配置起来麻烦的话还是算了,就index.php进吧,启用伪静态,然后设置好config.php的rewirte数组。
像这样
'rewrite' => array(
                'admin123321' => 'admin/login/index',
        ),



2016-07-11 11:05:15

#4 jake

你的想法要实现挺简单的。

首先后台模块是admin,入口还是index.php

然后搞个xxx.php(名字随便定)

xxx.php的内容是


define("is_admin", true);
include "index.php";

然后在admin里面的BaseController的init里面,加上对is_admin的判断。

这样就仅能从xxx.php进去admin了。

这可以说是入口伪装,并不是所谓的多入口。

2016-07-11 12:12:33

#5 tanidea

jake 发表于 2016-7-11 12:12
你的想法要实现挺简单的。

首先后台模块是admin,入口还是index.php
这主意好。
另外,我发现一个现象,可能跟这帖子开头说的有关。
我新开一贴说。

2016-07-11 15:05:42