Заголовок перенаправляет на страницу, которая не существует? - PullRequest
1 голос
/ 09 июня 2010

У меня такое странное поведение, заголовки PHP по-разному работают на веб-сервере и локальном хосте.

Пример

Функция веб-хостинга

header("Location: /content/".$page['url_language']."/".$page['direction']."/".$w['id']."/")

перенаправляет на index.php и отправляет /content/".$page['url_language']."/".$page['direction']."/".$w['id']."/"в качестве параметров.

Но затем я делаю то же самое на localhost, и мой браузер перенаправляет на страницу /content/".$page['url_language']."/".$page['direction']."/".$w['id']."/"

Этого не существует, нет индекса.Как это происходит, на веб-сервере и локальном хосте нет .htaccess для изменения настроек.Может быть, я пропустил некоторые настройки, какие-либо предложения?

Ответы [ 3 ]

0 голосов
/ 09 июня 2010

Можно записать правила перенаправления в файл конфигурации apache, на вашем сервере может быть правило перенаправления для всех URL-адресов, которые не являются каталогами или файлами для маршрутизации в index.php и синтаксического анализа строки в качестве параметров. Не зная, на каком сервере работает, я не могу сказать вам, где находится файл конфигурации apache.

Также, как вы получаете доступ к строке URL на действующем сайте, вы говорите, что она анализирует строку URL в качестве параметров, используете ли вы $ _GET ['some_var']?

Люк

0 голосов
/ 09 июня 2010

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

0 голосов
/ 09 июня 2010

HTTP / 1.1 запрашивает абсолютный URI с параметром "location:".Некоторые обозреватели принимают относительные пути, но ваша проблема может возникнуть отсюда.

Если это абсолютный путь на сервере, его конфигурация может отличаться от вашего локального файла.Проверьте, действительно ли / content находится в корне сервера (а не в / www или чем-то подобном).

Вот небольшой код, который вы можете использовать для проверки ваших глобальных переменных.

<?php
/* Redirection to an other webpage in the same file */
$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'mypage.php';
header("Location: http://$host$uri/$extra");
exit;
?>`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...