mod_rewrite для Codeigniter о сетевых решениях - PullRequest
0 голосов
/ 06 декабря 2011

У меня есть установка Codeigniter 2.1, которая правильно работает на моем локальном тестовом сервере (XAMPP), однако, когда я переместил это в поддомен тестирования на моем хостинге Network Solutions, я не могу получить .htaccess для удаления index.php. Я попытался переписать путь как "/ htdocs / test" и / test, но я все еще получаю следующую ошибку:

Внутренняя ошибка сервера

Сервер обнаружил внутреннюю ошибку или неверную конфигурацию и не смог выполнить ваш запрос.

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

Дополнительная информация об этой ошибке может быть доступна в журнале ошибок сервера.

Кроме того, при попытке использовать ErrorDocument для обработки запроса произошла ошибка 500 Internal Server Error.

<IfModule mod_rewrite.c>
SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteBase /test

#Removes access to the system folder by users.
#Additionally this will allow you to create a System.php controller,
#previously this would not have been possible.
#'system' can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]

#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#This last condition enables access to the images and css folders, and the robots.txt file
#Submitted by Michael Radlmaier (mradlmaier)
RewriteCond $1 !^(index\.php|images|robots\.txt|css)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
# If we don't have mod_rewrite installed, all 404's
# can be sent to index.php, and everything works as normal.
# Submitted by: ElliotHaughin

ErrorDocument 404 /index.php
</IfModule>

Мой поддомен расположен в / htdocs / test

Спасибо!

Ответы [ 2 ]

0 голосов
/ 07 декабря 2011

Во-первых, убедитесь, что у вас установлен модуль mod_rewrite в apache. Убейте скрипт в верхней части MAIN index.php файла:

<?php die(var_dump(apache_get_modules())); ?>

Если вы не видите mod_rewrite, то нигде не установлено.

Чтобы установить его, выполните следующую команду на вашем сервере (если у вас есть доступ),

sudo a2enmod rewrite

Это тогда включило mod_rewrite для меня, и оно работало нормально.

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

0 голосов
/ 07 декабря 2011

Скорее всего, проблема связана с httpd.conf, если вы не можете редактировать это самостоятельно, вы мало что можете сделать вне службы поддержки вашего хоста. Если вы можете редактировать конфигурацию Apache на своем хосте, вы можете опубликовать это, и мы поможем вам.

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

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