gpt4 book ai didi

linux - Kohana_HTTP_Exception [404] : The requested URL/was not found on this server

转载 作者:太空宇宙 更新时间:2023-11-04 12:43:18 25 4
gpt4 key购买 nike

标准 Hello World 运行良好:

Route::set('default', '(<controller>(/<action>(/<id>)))')
->defaults(array(
'controller' => 'welcome',
'action' => 'index',
));

如果我更改为其他 Controller ,例如 Controller/Site/Test.php,那么我会收到一条错误消息:

Kohana_HTTP_Exception [ 404 ]: The requested URL / was not found on this server.

Route::set('default', '(<controller>(/<action>(/<id>)))')
->defaults(array(
'directory' => 'site'
'controller' => 'test',
'action' => 'index',
));

Controller 正常 Test.php:

<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Test extends Controller {

public function action_index()
{
$this->response->body('hello, t world!');
}

} // End Test

Bootstrap.php

Kohana::init(array(
'base_url' => '/',
'index_file' => FALSE,
));

.htaccess

# Turn on URL rewriting
RewriteEngine On

# Installation directory
RewriteBase /

# Protect hidden files from being viewed
<Files .*>
Order Deny,Allow
Deny From All
</Files>

# Protect application and system files from being viewed
RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L]

# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT]

/var/www/html/kohanafr 中构造域 http://kohanafr

调整虚拟主机

<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName kohanafr
ServerAlias www.kohanafr
DocumentRoot /var/www/html/kohanafr
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

apache 配置:

<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>

<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>

<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

补充。此错误代码:

SYSPATH/classes/Kohana/Request/Client/Internal.php [ 80 ]

75          if ( ! class_exists($prefix.$controller))
76 {
77 throw HTTP_Exception::factory(404,
78 'The requested URL :uri was not found on this server.',
79 array(':uri' => $request->uri())
80 )->request($request);
81 }
82
83 // Load the controller using reflection
84 $class = new ReflectionClass($prefix.$controller);
85

1。 SYSPATH/classes/Kohana/Request/Client.php [ 114 ] » Kohana_Request_Client_Internal->execute_request(参数)

0

object Request(19) {
protected _requested_with => NULL
protected _method => string(3) "GET"
protected _protocol => string(8) "HTTP/1.1"
protected _secure => bool FALSE
protected _referrer => NULL
protected _route => object Route(5) {
protected _filters => array(0)
protected _uri => string(32) "(<controller>(/<action>(/<id>)))"
protected _regex => array(0)
protected _defaults => array(3) (
"directory" => string(4) "site"
"controller" => string(4) "test"
"action" => string(5) "index"
)
protected _route_regex => string(95) "#^(?:(?P<controller>[^/.,;?\n]++)(?:/(?P<action>[^/.,;?\n]++)(?:/(?P<id>[^/.,;?\n]++))?)?)?$#uD"
}
protected _routes => array(0)
protected _header => object HTTP_Header(0) {
}
protected _body => NULL
protected _directory => string(4) "Site"
protected _controller => string(4) "Test"
protected _action => string(5) "index"
protected _uri => string(0) ""
protected _external => bool FALSE
protected _params => array(0)
protected _get => array(0)
protected _post => array(0)
protected _cookies => array(0)
protected _client => object Request_Client_Internal(9) {
protected _previous_environment => NULL
protected _cache => NULL
protected _follow => bool FALSE
protected _follow_headers => array(1) (
0 => string(13) "authorization"
)
protected _strict_redirect => bool TRUE
protected _header_callbacks => array(1) (
"Location" => string(34) "Request_Client::on_header_location"
)
protected _max_callback_depth => integer 5
protected _callback_depth => integer 1
protected _callback_params => array(0)
}
}

1

object Response(5) {
protected _status => integer 200
protected _header => object HTTP_Header(0) {
}
protected _body => string(0) ""
protected _cookies => array(0)
protected _protocol => string(8) "HTTP/1.1"
}

<强>2。 SYSPATH/classes/Kohana/Request.php [ 993 ] » Kohana_Request_Client->执行(参数)

0

object Request(19) {
protected _requested_with => NULL
protected _method => string(3) "GET"
protected _protocol => string(8) "HTTP/1.1"
protected _secure => bool FALSE
protected _referrer => NULL
protected _route => object Route(5) {
protected _filters => array(0)
protected _uri => string(32) "(<controller>(/<action>(/<id>)))"
protected _regex => array(0)
protected _defaults => array(3) (
"directory" => string(4) "site"
"controller" => string(4) "test"
"action" => string(5) "index"
)
protected _route_regex => string(95) "#^(?:(?P<controller>[^/.,;?\n]++)(?:/(?P<action>[^/.,;?\n]++)(?:/(?P<id>[^/.,;?\n]++))?)?)?$#uD"
}
protected _routes => array(0)
protected _header => object HTTP_Header(0) {
}
protected _body => NULL
protected _directory => string(4) "Site"
protected _controller => string(4) "Test"
protected _action => string(5) "index"
protected _uri => string(0) ""
protected _external => bool FALSE
protected _params => array(0)
protected _get => array(0)
protected _post => array(0)
protected _cookies => array(0)
protected _client => object Request_Client_Internal(9) {
protected _previous_environment => NULL
protected _cache => NULL
protected _follow => bool FALSE
protected _follow_headers => array(1) (
0 => string(13) "authorization"
)
protected _strict_redirect => bool TRUE
protected _header_callbacks => array(1) (
"Location" => string(34) "Request_Client::on_header_location"
)
protected _max_callback_depth => integer 5
protected _callback_depth => integer 1
protected _callback_params => array(0)
}
}

<强>3。 DOCROOT/index.php [118]»Kohana_Request->execute()

113     /**
114 * Execute the main request. A source of the URI can be passed, eg: $_SERVER['PATH_INFO'].
115 * If no source is specified, the URI will be automatically detected.
116 */
117 echo Request::factory(TRUE, array(), FALSE)
118 ->execute()
119 ->send_headers(TRUE)
120 ->body();
121 }

Internal.php echo Debug::vars($_SERVER,$request,$request->uri())

echo Debug::vars($_SERVER,$request,$request->uri());            


if ( ! class_exists($prefix.$controller))
{
throw HTTP_Exception::factory(404,
'The requested URL :uri was not found on this server.',
array(':uri' => $request->uri())
)->request($request);
}

转储:

array(29) (
"HTTP_HOST" => string(8) "kohanafr"
"HTTP_USER_AGENT" => string(74) "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:44.0) Gecko/20100101 Firefox/44.0"
"HTTP_ACCEPT" => string(63) "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
"HTTP_ACCEPT_LANGUAGE" => string(14) "en-US,en;q=0.5"
"HTTP_ACCEPT_ENCODING" => string(13) "gzip, deflate"
"HTTP_CONNECTION" => string(10) "keep-alive"
"PATH" => string(60) "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
"SERVER_SIGNATURE" => string(69) "<address>Apache/2.4.10 (Ubuntu) Server at kohanafr Port 80</address>
"
"SERVER_SOFTWARE" => string(22) "Apache/2.4.10 (Ubuntu)"
"SERVER_NAME" => string(8) "kohanafr"
"SERVER_ADDR" => string(9) "127.0.0.1"
"SERVER_PORT" => string(2) "80"
"REMOTE_ADDR" => string(9) "127.0.0.1"
"DOCUMENT_ROOT" => string(22) "/var/www/html/kohanafr"
"REQUEST_SCHEME" => string(4) "http"
"CONTEXT_PREFIX" => string(0) ""
"CONTEXT_DOCUMENT_ROOT" => string(22) "/var/www/html/kohanafr"
"SERVER_ADMIN" => string(19) "webmaster@localhost"
"SCRIPT_FILENAME" => string(32) "/var/www/html/kohanafr/index.php"
"REMOTE_PORT" => string(5) "43568"
"GATEWAY_INTERFACE" => string(7) "CGI/1.1"
"SERVER_PROTOCOL" => string(8) "HTTP/1.1"
"REQUEST_METHOD" => string(3) "GET"
"QUERY_STRING" => string(0) ""
"REQUEST_URI" => string(1) "/"
"SCRIPT_NAME" => string(10) "/index.php"
"PHP_SELF" => string(10) "/index.php"
"REQUEST_TIME_FLOAT" => float 1474108538.614
"REQUEST_TIME" => integer 1474108538
)
object Request(19) {
protected _requested_with => NULL
protected _method => string(3) "GET"
protected _protocol => string(8) "HTTP/1.1"
protected _secure => bool FALSE
protected _referrer => NULL
protected _route => object Route(5) {
protected _filters => array(0)
protected _uri => string(32) "(<controller>(/<action>(/<id>)))"
protected _regex => array(0)
protected _defaults => array(3) (
"directory" => string(4) "site"
"controller" => string(4) "test"
"action" => string(5) "index"
)
protected _route_regex => string(95) "#^(?:(?P<controller>[^/.,;?\n]++)(?:/(?P<action>[^/.,;?\n]++)(?:/(?P<id>[^/.,;?\n]++))?)?)?$#uD"
}
protected _routes => array(0)
protected _header => object HTTP_Header(0) {
}
protected _body => NULL
protected _directory => string(4) "Site"
protected _controller => string(4) "Test"
protected _action => string(5) "index"
protected _uri => string(0) ""
protected _external => bool FALSE
protected _params => array(0)
protected _get => array(0)
protected _post => array(0)
protected _cookies => array(0)
protected _client => object Request_Client_Internal(9) {
protected _previous_environment => NULL
protected _cache => NULL
protected _follow => bool FALSE
protected _follow_headers => array(1) (
0 => string(13) "authorization"
)
protected _strict_redirect => bool TRUE
protected _header_callbacks => array(1) (
"Location" => string(34) "Request_Client::on_header_location"
)
protected _max_callback_depth => integer 5
protected _callback_depth => integer 1
protected _callback_params => array(0)
}
}
string(1) "/"

最佳答案

defaults()directory 的值需要与目录名称匹配以防大小写,因此您需要:

Route::set('default', '(<controller>(/<action>(/<id>)))')
->defaults(array(
'directory' => 'Site' /* Note capital 'S' */
'controller' => 'test',
'action' => 'index',
));

关于linux - Kohana_HTTP_Exception [404] : The requested URL/was not found on this server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39544712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com