【发布时间】:2017-01-13 01:13:00
【问题描述】:
我有一个运行良好的网站。我想在子文件夹而不是子域中创建另一个。这样做的主要考虑因素是我需要为这两个站点安装 tls cert。而且由于父网站使用 tls 证书,我希望它能够覆盖孩子(我现在买不起另一个)。问题是我在两个网站中都有 .htaccess 文件,看起来像这样:
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
父网站仍在运行,但我无法访问“子”网站。
编辑:
虽然我不认为路由是问题,但我应某人的要求将我的机制发布在这里
class App{
protected $controller = 'welcome';
protected $method = 'index';
protected $params;
public function __construct(){
$url = $this->parseURL();
if( isset( $url[0] ) && file_exists( 'app/controllers/' . strtolower( $url[0] ) . '.php' ) )
{
$this->controller = $url[0];
unset( $url[0]);
}
require_once 'app/controllers/' . strtolower( $this->controller ). '.php';
$this->controller = new $this->controller;
if( isset( $url[1] ) )
{
if( method_exists( $this->controller, $url[1] ) )
{
$this->method = $url[1];
unset( $url[1] );
}
}
$this->params = $url ? array_values( $url ) : [];
call_user_func_array( [ $this->controller, $this->method ], $this->params );
}
protected function parseURL(){
if( isset( $_GET['url'] ) ){
//return $url = explode( '/', filter_var( rtrim( $_GET['url'], '/') ), FILTER_SANITIZE_URL );
return $url = explode( '/', filter_var( rtrim( $_GET['url'], '/' ), FILTER_SANITIZE_URL ) );
}
}
}
这是基本的控制器类:
abstract class Controller{
protected $response = array();
protected $dbInstance = false;
protected function model( $model ){
require_once 'app/models/' . strtolower( $model ) . '.php';
return new $model();
}
protected function view( $view, $data = [] ){
require_once 'app/views/' . strtolower( $view ) . '.php';
}
}
【问题讨论】:
-
你在使用框架吗?
-
@ka_lin 不,我使用自己定制的 MVC
-
然后发布您的自定义路由机制......我们在这里处于黑暗中
-
@ka_lin,我已按照您的建议在更新中包含了路由机制。