CodeIginter, Mod_Rewrite для URL и .htaccess - PullRequest
1 голос
/ 25 августа 2011

Я не уверен, какой сайт stackexchange лучше всего подходит для этого вопроса, так как я мог видеть, что он подходит для нескольких, особенно в зависимости от окончательного ответа.

Проблема, с которой я сталкиваюсь, заключается в том, что я написал сайт с использованием CodeIgniter. Сайт является довольно простым сайтом компании. Я использовал CodeIginter для реализации чистых URL-адресов и возможности расширения сайта в будущем. Существует также простой блог и «галерея», которые являются динамическими, управляемыми базой данных.

В моей среде разработки сайт работает отлично. На моем рабочем месте для сайта (который управляет моим блогом WordPress), сайт также работает.

Проблема в том, что я пытаюсь переместить сайт на рабочий сервер, он перестает работать. Мне удалось открыть домашнюю страницу (которая использует базу данных и ресурсы), так что я уверен, что все они работают правильно. Я сузил проблему до возможных проблем с конфигурацией или проблем с mod_rewrite.

Первое, на что я должен обратить внимание (но я не уверен, насколько это действительно актуально), это то, что сервер использует CGI / FastCGI, тогда как мои серверы разработки и промежуточного использования используют «Обработчик Apache 2.0». Будет ли эта разница заставлять меня изменять мой файл .htaccess? Я публикую базовый файл, который работает в моей среде разработки / размещения, здесь:

RewriteEngine on
RewriteCond $1 !^(index\.php|phpinfo\.php|images|robots\.txt|sitemap\.xml\.gz|sitemap\.xml|assets)
RewriteRule ^(.*)$ /index.php/$1 [L]

Это довольно просто.

Когда я пытаюсь запустить сайт на рабочем сервере, с этим файлом .htaccess, я получаю:

Невозможно выполнить запрошенный скрипт [/ufs/websites/c/[redacted]/html/index.php/]: не каталог

Когда я изменяю свой .htaccess на:

RewriteEngine on

RewriteBase /
RewriteCond $1 !^(index\.php|images|robots\.txt|sitemap\.xml\.gz|sitemap\.xml|assets)

RewriteRule ^html/(.*)$ /index.php/$1 [L]  #This WILL Present the home page correctly whereas it used to give an error

Это даст мне домашнюю страницу, но ни одна из других страниц не работает; вместо этого я получу либо 404, либо пустую страницу.

В настоящее время мое предположение о проблеме - мое RewriteRule, но я действительно не совсем уверен. Это может быть настройка в моем конфиге. Я буду продолжать осматриваться, но я надеюсь, что кто-то испытал это в предыдущей работе, которая может помочь мне указать верное направление (или, что еще лучше) сказать мне, что я делаю неправильно. :-)

Спасибо всем.

Ответы [ 2 ]

0 голосов
/ 25 августа 2011

Ну, вы увидите этот вопрос, задаваемый тысячу раз на оригинальных форумах.И этот пост имеет похожую ситуацию, когда каждая попытка удалить index.php может быть придирчивой :) Смотрите дополнительную конфигурацию, которую вы можете попробовать в этом посте.

0 голосов
/ 25 августа 2011

Я не знаю достаточно о конфигурации, но выстрел в темноте - так как вы изменяете правила перезаписи, вы также должны убедиться, что у вас есть

$config['index_page'] = '';

установлено в

config.php

вместо

$config['index_page'] = 'index.php';

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...