2011-11-02 4 views
0

У меня есть то, что я считаю странной проблемой. У меня есть несколько сайтов, разработанных на той же платформе хостинга. Весь сайт кажется прекрасным, за исключением одного из них. Веб-сайт настроен на 1 страницу (index.php), который извлекает правильные данные для отображения из базы данных на основе path_info - это работало много лет - теперь на одном сайте это перестало работать. Потеряв работу, я имею в виду, что страница ниже теперь переходит к ошибке 404 - я был под впечатлением, что он должен видеть index.php в качестве используемого сценария.url/php path_info issue

Я считаю, что это проблема с htconfig или другим файлом. У меня нет доступа к неправильной настройке на конец хоста. Возможно, кто-то может пролить свет на то, где я могу их направить. Мой собственный файл Htaccess совершенно пуст:

wwww.testsite.com/index.php/page1 

выше используется для перехода к index.php, а затем с помощью $ _SERVER path_info получить стр.1 и получить содержимое, связанное с page1 из базы данных и отображение, что на этой странице. Может кто-то подтвердить, что я не схожу с ума - что выше должно идти index.php, пожалуйста? и, возможно, слишком объясните, почему URL теперь рассматривается как несуществующий, поскольку он, похоже, не идет на index.php, а на страницу1. Заранее благодарю за любой совет.

+0

Они обновили PHP или apache? – Patrick

ответ

1

Может кто-то подтвердить, что я не схожу с ума - что выше [wwww.testsite.com/index.php/page1] следует перейти на index.php, пожалуйста?

Nope. Это должно искать файл с именем page1 в каталоге index.php в корневом каталоге документа для www.testsite.com.

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

RewriteEngine on 
RewriteRule ^index.php(.*)$ index.php 

Другая возможность заключается в том, что MultiViews были ранее включены и в настоящее время не больше. С MultiViews вы также получите описанное вами поведение. Если это разрешено хостером, вы можете включить его, просто создавая файл .htaccess, содержащий:

Options MultiViews 

Если поместить файл .htaccess либо с одним из вышеуказанных растворов в нем в корневом каталоге, вы можете проверить это.

+0

спасибо codecaster. Я собираюсь добавить код перезаписи и протестировать его, но только для спокойствия вы можете сказать мне немного больше, чем много просмотров - я посмотрел ссылку на страницу, которую вы указали, но это что-то, что сделано в файле htconfig? – kaliok

+0

С этой ссылкой: «MultiViews - это опция для каждого каталога, то есть она может быть установлена ​​с помощью директивы Options в разделе , или в httpd.conf или (если AllowOverride правильно установлен) в файлах .htaccess." – CodeCaster

+0

Вставка в опции multiviews дала мне внутреннюю ошибку сервера :( – kaliok

0

В Apache, если у вас есть AcceptPathInfo on где-нибудь соответствующую в конфигурации Apache (в том числе в .htaccess, если конфигурация сервера позволяет) и есть файл /index.php, то /index.php/stuff действительно должен идти к /index.php и должны установить $_SERVER['PATH_INFO'] в "/stuff". Обработчик сценария CGI и mod_php * даже делают это по умолчанию, поэтому он должен работать, только если он явно отключен.

В любом случае, если он в настоящий момент выключен, вы можете включить его, добавив AcceptPathInfo on в ваш .htaccess файл, если для сайта установлено AllowOverride FileInfo.

Я не делаю никаких обещаний по поводу других веб-серверов, но PATH_INFO является частью спецификации CGI, поэтому я думаю, что большинство серверов будут иметь аналогичную настройку.

+0

Возможный способ настройки nginx для работы таким образом написан здесь: http://stackoverflow.com/questions/8265941/empty-value-to-path-info-in -nginx возвраты-макулатурное значение – SimonSimCity

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