2013-11-26 3 views
0

У меня только что возникла проблема с сайтом Codeigniter, где после того, как хостинговая компания перенесла файлы на новый сервер, я больше не мог перемещаться от домашней страницы. I Googled форум с аналогичной проблемой, и ответ был моим файлом htacess. Ранее было так:необходимо изменить код перезаписи htaccess

Options FollowSymLinks 
<IfModule mod_rewrite.c> 
RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule> 

и данное решение было добавление '?' символ после 'index.php'. Я сделал это, и все работало нормально.

Я попытался понять код и синтаксис htaccess и прочитать много документов, но они также могут быть написаны на китайском языке для всего, что я могу получить от них. Так может кто-нибудь объяснить, почему этот дополнительный?? и что он сделал? И если вы также можете объяснить остальную часть кода, я буду бесконечно благодарен!

+2

Вы понимаете, что означает 'index.php/foo' и' index.php? Foo' url? – zerkms

ответ

1

Ваш php-обработчик или веб-сервер вашего нового хоста не настроен для обработки PATH INFO, или материал после скрипта (index.php), который является частью фактического пути, например.

/index.php/this/is/part/of/the/path_info 

index.php скрипт выполняется, и все после того, как может быть извлечена с помощью «PATH_INFO». Если сервер не справляется с этим, воспламенитель кода может обрабатывать путь, пройденный как QUERY STRING. Каковы параметры, которые следуют за ?.

Ничего из этого не имеет отношения к htaccess или mod_rewrite. Это просто способ работы URL-адресов и обработчиков.

+0

Ах, спасибо огромное. Я вскочил на все неправильные выводы о странности Апача. Теперь ясно. Тем не менее, вы не понимаете остальную часть кода! – Perkin5

Смежные вопросы