Переписать правила не работает 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.

Другие вопросы по тегам