Привет, это мой первый вопрос, задающий вопрос здесь, поэтому немного поменяйте меня, если мой вопрос не ясен или мой код не прав lol. В настоящее время я загрузил свой новый веб-сайт php mvc на 123-reg.co.uk и im, используя apache mod_rewrite с классом маршрутизатора. Он отлично работает, когда im на моем локальном хосте, но когда он работает, mod_rewrite игнорируется, и контроллер не распознается, например, если я набираю http://www.examplewebsite.co.uk, то домашний контроллер загружается так, как должен, но если я пытаюсь загрузить другой контроллер, например, http://www.examplewebsite.co.uk/images, он тоже меня принимает страница ошибки сервера 404. Я пытался исправить это в течение нескольких дней без успеха, я провел некоторое исследование, и 123-reg.co.uk действительно поддерживает mod_rewrite, я чувствую, что я теряю его ха-ха, любая помощь будет принята с благодарностью, спасибо заранее ,123-reg.co.uk веб-сайт и apache mod_rewrite
Это класс маршрутизатор:
class Router {
public function __construct()
{
if(empty($_GET['url']))
{
Help::loadApplication('controllers','home');
return new Home();
}
elseif(isset($_GET['url']))
{
$url = $_GET['url'];
$url = rtrim($url,'/');
$url = filter_var($url,FILTER_SANITIZE_URL,true);
$url = explode('/',$url);
Help::loadApplication('controllers',$url[0]);
if(class_exists($url[0]))
{
$controller = new $url[0];
if(isset($url[1]))
{
$methodName = $url[1];
if(method_exists($controller, $methodName))
{
$methodParams = (isset($url[2]) ? $url[2] : false);
$controller->{$methodName}($methodParams);
}
}
}
else
{
Help::loadApplication('controllers','home');
return new Home();
}
}
}
Это mod_rewrite:
RewriteEngine On
RewriteBase /http://www.examplewebsite.co.uk
Options -Indexes
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php/?url=$1 [QSA,L]
UPDATE !!
Любой, у кого есть эта же проблема, причина, по которой она не работает, связана с тем, что 123-reg.co.uk не поддерживают mod_rewrite в своем пакете Windows, но делают там пакет Linux, это было бы полезно для они заявляют, что когда я подписывался на пакет Windows, но теперь переключился на пакет Linux. Спасибо за помощь, ребята!
удалите строку «RewriteBase», она работает тогда? – 2014-08-28 00:48:46
Я пробовал это, и он все еще не работает, его вождение меня сумасшедшим, это была самая сложная часть всего процесса lol – Wisd0m