Переписать правила не работает Apache 1.3
Я использую несколько директив перезаписи, которые раньше всегда работали на apache2, но сейчас я пытаюсь создать новый хостинг, и правила перезаписи, похоже, не применяются.
Я сократил файлы.htaccess до следующих основных правил:
RewriteEngine On
Rewritebase /demo/
RewriteRule ^(.*)$ index.php/$1 [L]
Как видите, я хочу переписывать каждый запрос в мой файл index.php в демо-папке от root.
Таким образом, все, например http://www.example.com/demo/albums/show/1 должно обрабатываться http://www.example.com/demo/index.php для стандартной установки MVC. (Я использую CodeIgniter кстати)
Приведенные выше директивы приводят к ошибке 500, поэтому я подумал, что, возможно, из-за некоторых возможных синтаксических различий между 1.3 и 2.x.
После некоторого исправления ошибок и ошибок я обнаружил, что само правило переписывания ошибочно, но я действительно не понимаю, почему.
Есть идеи, почему мое правило перезаписи не работает? это было раньше на многих разных серверах. Предложения как это исправить?
Примечание: mod_rewrite работает, я написал небольшой тест, чтобы убедиться,
2 ответа
Правильно ли прописан RewriteBase в реальном файле?
Это правило в основной части httpd.conf или в блоке, где, возможно, вам не нужен начальный слеш /?
Ваш файл.htaccess, кажется, в хорошем состоянии, который должен работать с Apache 1.3.
Как вы создали свой.htaccess? Если память мне не изменяет, Apache 1.3 был более чувствителен к разрывам строк и т. Д., Чем Apache 2.x, поэтому, если вы создали файл с помощью Блокнота Windows или другого редактора, используя \r\n для перевода строки, это может вызвать внутренний сервер ошибка.
Если у вас есть доступ к журналу ошибок Apache, посмотрите, что вызывает расстройство Apache.