Назад | Перейти на главную страницу

Правила перезаписи не работают apache 1.3

Я использую пару директив перезаписи, которые раньше всегда работали на apache2, но теперь я пробую новый общий хостинг, и правила перезаписи, похоже, не применяются.

Я сократил файлы .htaccess до следующих основных правил:

RewriteEngine On
Rewritebase /demo/

RewriteRule ^(.*)$ index.php/$1 [L]

Как видите, я хочу переписывать каждый запрос в свой файл index.php в демо-папке из корневого каталога.

Так что все нравится http://www.example.com/demo/albums/show/1 должен обрабатываться http://www.example.com/demo/index.php для стандартной настройки MVC. (Я использую CodeIgniter, кстати)

Указанные выше директивы приводят к ошибке 500, поэтому я подумал, может быть, из-за некоторых возможных различий в синтаксисе между 1.3 и 2.x.

После некоторого редактирования следов и ошибок я обнаружил, что само правило перезаписи является ошибочным, но я действительно не понимаю, почему.

Есть идеи, почему мое правило перезаписи не работает? это было раньше на множестве разных серверов. Предложения как исправить?

Заметка: mod_rewrite работает, я написал небольшой тест, чтобы убедиться

Ваш файл .htaccess в хорошем состоянии, он должен работать с Apache 1.3.

Как вы создали свой .htaccess? Если мне не изменяет память, Apache 1.3 был более чувствителен к разрывам строк и т. Д., Чем Apache 2.x, поэтому, если вы создали файл с помощью Блокнота Windows или другого редактора, используя \ r \ n для новой строки, это может вызвать внутренний сервер ошибка.

Если у вас есть доступ к журналу ошибок Apache, посмотрите там, что вызывает расстройство Apache.

Правильно ли написано RewriteBase в фактическом файле?

Правило находится в основной части httpd.conf или в блоке, где, возможно, вам не нужна начальная косая черта /?