abandon support of subdir

This commit is contained in:
printempw 2016-07-22 08:55:41 +08:00
parent 3768e4c4d4
commit 0de6ec510a
3 changed files with 41 additions and 11 deletions

View File

@ -33,6 +33,27 @@ class Http
return $ip; return $ip;
} }
public static function setUri($uri)
{
$_SERVER["REQUEST_URI"] = $uri;
return true;
}
public static function getUri()
{
return $_SERVER["REQUEST_URI"];
}
public static function getCurrentUrl()
{
$url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? "https://" : "http://";
$url .= $_SERVER["SERVER_NAME"];
$url .= ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]);
$url .= $_SERVER["REQUEST_URI"];
return $url;
}
public static function abort($code, $msg = "Something happened.", $is_json = false) public static function abort($code, $msg = "Something happened.", $is_json = false)
{ {
http_response_code((int)$code); http_response_code((int)$code);

View File

@ -30,6 +30,16 @@ foreach ($services as $facade => $class) {
class_alias($class, $facade); class_alias($class, $facade);
} }
/**
* URL ends with slash will cause many reference problems
*/
if (\Http::getUri() != "/" && substr(\Http::getUri(), -1) == "/")
{
die(\Http::getUri());
$url = substr(\Http::getCurrentUrl(), 0, -1);
\Http::redirect($url);
}
// Check database config // Check database config
$db_config = require BASE_DIR.'/config/database.php'; $db_config = require BASE_DIR.'/config/database.php';
\Database::checkConfig($db_config); \Database::checkConfig($db_config);
@ -42,8 +52,7 @@ $capsule->bootEloquent();
session_start(); session_start();
\Pecee\SimpleRouter\SimpleRouter::group([ \Pecee\SimpleRouter\SimpleRouter::group([
'exceptionHandler' => 'App\Exceptions\RouterExceptionHandler', 'exceptionHandler' => 'App\Exceptions\RouterExceptionHandler'
'middleware' => 'App\Middlewares\RemoveUrlSlashMiddleware'
], function() { ], function() {
require BASE_DIR.'/config/routes.php'; require BASE_DIR.'/config/routes.php';
}); });

View File

@ -4,15 +4,15 @@
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>{{ Option::get('site_name') }}</title> <title>{{ Option::get('site_name') }}</title>
<link rel="shortcut icon" href="../assets/images/favicon.ico"> <link rel="shortcut icon" href="./assets/images/favicon.ico">
<!-- Tell the browser to be responsive to screen width --> <!-- Tell the browser to be responsive to screen width -->
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<!-- App Styles --> <!-- App Styles -->
<link rel="stylesheet" href="../assets/dist/app.min.css"> <link rel="stylesheet" href="./assets/dist/app.min.css">
<!-- AdminLTE Skins --> <!-- AdminLTE Skins -->
<link rel="stylesheet" href="../assets/libs/skins/{{ Option::get('color_scheme') }}.min.css"> <link rel="stylesheet" href="./assets/libs/skins/{{ Option::get('color_scheme') }}.min.css">
<link rel="stylesheet" href="../assets/dist/css/index.min.css"> <link rel="stylesheet" href="./assets/dist/css/index.min.css">
<style>{{ Option::get('custom_css') }}</style> <style>{{ Option::get('custom_css') }}</style>
</head> </head>
@ -32,7 +32,7 @@
<div class="collapse navbar-collapse pull-left" id="navbar-collapse"> <div class="collapse navbar-collapse pull-left" id="navbar-collapse">
<ul class="nav navbar-nav"> <ul class="nav navbar-nav">
<li class="active"><a href="./">首页</a></li> <li class="active"><a href="./">首页</a></li>
<li><a href="../skinlib">皮肤库</a></li> <li><a href="./skinlib">皮肤库</a></li>
</ul> </ul>
</div><!-- /.navbar-collapse --> </div><!-- /.navbar-collapse -->
<!-- Navbar Right Menu --> <!-- Navbar Right Menu -->
@ -44,20 +44,20 @@
<!-- Menu Toggle Button --> <!-- Menu Toggle Button -->
<a href="#" class="dropdown-toggle" data-toggle="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">
<!-- The user image in the navbar--> <!-- The user image in the navbar-->
<img src="../avatar/25/{{ base64_encode($_SESSION['email']) }}.png" class="user-image" alt="User Image"> <img src="./avatar/25/{{ base64_encode($_SESSION['email']) }}.png" class="user-image" alt="User Image">
<!-- hidden-xs hides the username on small devices so only the image appears. --> <!-- hidden-xs hides the username on small devices so only the image appears. -->
<span class="hidden-xs nickname">{{ ($user->getNickName() == '') ? $_SESSION['email'] : $user->getNickName() }}</span> <span class="hidden-xs nickname">{{ ($user->getNickName() == '') ? $_SESSION['email'] : $user->getNickName() }}</span>
</a> </a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<!-- The user image in the menu --> <!-- The user image in the menu -->
<li class="user-header"> <li class="user-header">
<img src="../avatar/128/{{ base64_encode($_SESSION['email']) }}.png" alt="User Image"> <img src="./avatar/128/{{ base64_encode($_SESSION['email']) }}.png" alt="User Image">
<p>{{ $_SESSION['email'] }}</p> <p>{{ $_SESSION['email'] }}</p>
</li> </li>
<!-- Menu Footer--> <!-- Menu Footer-->
<li class="user-footer"> <li class="user-footer">
<div class="pull-left"> <div class="pull-left">
<a href="../user" class="btn btn-default btn-flat">用户中心</a> <a href="./user" class="btn btn-default btn-flat">用户中心</a>
</div> </div>
<div class="pull-right"> <div class="pull-right">
<a href="javascript:logout();" class="btn btn-default btn-flat">登出</a> <a href="javascript:logout();" class="btn btn-default btn-flat">登出</a>
@ -106,7 +106,7 @@
</div><!-- ./wrapper --> </div><!-- ./wrapper -->
<!-- App Scripts --> <!-- App Scripts -->
<script type="text/javascript" src="../assets/dist/app.min.js"></script> <script type="text/javascript" src="./assets/dist/app.min.js"></script>
@yield('script') @yield('script')