Я не уверен, какой сайт 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, но я действительно не совсем уверен. Это может быть настройка в моем конфиге. Я буду продолжать осматриваться, но я надеюсь, что кто-то испытал это в предыдущей работе, которая может помочь мне указать верное направление (или, что еще лучше) сказать мне, что я делаю неправильно. :-)
Спасибо всем.