我需要Apache2 mod_rewrite的帮助。下面是我的.htaccess文件:
AddDefaultCharset utf-8
php_flag magic_quotes_gpc Off
php_flag display_errors on
php_flag display_startup_errors on
Options -Indexes
php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 200
php_value max_input_time 200
RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php
在php代码中我使用:
header('Location: /404', true, 404);
当我写这样的网址时:
https://localhost/somecontroller
PHP函数:
public function run() {
$URL = explode('/', $_SERVER['REQUEST_URI']);
if (@$URL[1]) {
//Create controllers name from url(Controller + Name);
$controllerName = 'Controller' . ucfirst($URL[1], 1); //strtoupper(substr($URL[1], 0, 1)) . substr($URL[1], 1);
} else {
$controllerName = 'ControllerIndex';
}
if (@$URL[2]) {
//Create actions name from url(action + Name)
$actionName = 'action' . ucfirst($URL[1], 1);
} else {
$actionName = 'actionDefault';
}
if (@$URL[3]) {
$param = $URL[3];
}
$Controller = new $controllerName(/*$this->DB*/);
if (method_exists($Controller, $actionName)) {
if (@$param) {
if (@$param == '') {
header('Location: /404', true, 404);
exit();
} else {
@$Controller->$actionName($this->DB, $param);
}
} else {
@$Controller->$actionName($this->DB);
}
} else {
header('Location: /404', true, 404);
exit();
}
}
我得到了ERR_TOO_MANY_REDIRECTS。有人可以帮帮我吗?