WordPress, проблема с передачей параметра через URL localhost vs webhost

#php #wordpress #url #variables #parameter-passing

#php #wordpress #url #переменные #передача параметра

Вопрос:

Я разрабатываю простой базовый веб-сайт WordPress для друга. На моем ноутбуке все работает нормально, используя MAMP для создания среды локального хостинга, но когда я переношу сайт на свой веб-хостинг, я сталкиваюсь с проблемой.

Запуск локального и на веб-хостинге пользовательского файла цикла генерирует URL-адреса, подобные этому:
http://bch.techzen.org/programme?month=May,2011

Однако, когда я нажимаю на ссылку, поведение меняется:
при локальном запуске отображается адресная строка http://bch.techzen.org/programme?month=May, 2011
— при запуске в Интернете адресная строкаhttp://bch.techzen.org/programme/?month=May, 2011

Во втором примере обратите внимание на дополнительный / предшествующий? отметка, которая портит видимость переменной $ month в цикле.

Код на двух платформах идентичен, на обеих запущен WP 3.1.1, но я не знаю, как проверить, является ли это одной и той же версией PHP.

Комментарии:

1. Только что нашел плагин проверки работоспособности, это показывает, что на localhost работает PHP 5.3.5 и MySQL 5.5.9, тогда как мой веб-провайдер использует PHP 5.2.15 и MySQL 5.1.53. Я понятия не имею, имеет ли это значение.

2. FWIW дополнительная информация и возможное изменение фокуса. Пробуя различные вещи на локальном экземпляре, я вижу, что ОБА экземпляра показывают ссылки в форме: bch.techzen.org/programme/?month=May, 2011 но только локальный экземпляр может прочитать переменную $ month.

3. Пожалуйста, добавьте код, который фактически генерирует ссылки! Спасибо

4. Я думаю, что проблема в функции strtotime. С постоянной ссылкой italic_http://bch.techzen.org/program/?month= апрель 2011_italic , когда я повторяю $ month (параметр) Я вижу «Апрель 2011» (правильный), но все преобразования дат, например, $ firstday: $ lastday: $prevmth: -2678400 $ nextmth: 2678400 $prevlink: /program?month= декабрь 1969 $ nextlnk: /program?month = февраль 1970 << Январь 1970 >>

5. Игнорируйте комментарий выше. Я думаю, что проблема в функции strtotime, особенно при использовании «первого дня» в качестве параметра. С постоянной ссылкой на bch.techzen.org/programme/?month=April, 2011 когда я повторяю $ month (параметр) Я вижу «Апрель 2011» (правильный), но все преобразования дат, которые зависят от этого, неверны, например, $firstday = strtotime («первый день».$ month); пусто, в то время как $ prevmth = strtotime («-1 месяц», $ firstday); дает -2678400.

Ответ №1:

Проверьте, существует ли на веб-сервере файл .htaccess, и найдите RewriteRule. Это может быть источником ваших перепутанных ссылок!

Дополнительно перейдите в «Настройки — Постоянные ссылки» в вашем бэкэнде wordpress и проверьте, есть ли разница в «Общих настройках»

Комментарии:

1. Спасибо за предложения, Андре. Настройки постоянных ссылок идентичны (месяц и название), как и . HTACCESS файлы со следующим кодом: # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine На базе перезаписи / RewriteRule ^index.php $ — [L] RewriteCond %{REQUEST_FILENAME} ! -f перезаписать второй%{REQUEST_FILENAME} ! -d RewriteRule . /index.php [L] </IfModule> # END Правила перезаписи WordPress для меня новы, поэтому понятия не имею, является ли какое-либо из них проблемой.

2. просто еще одно предположение: вы, вероятно, поместили ‘/’ в category slug (в разделе ‘Сообщения — Категории’)?

3. Еще раз спасибо. В этом случае «program» — это страница, а не категория, поэтому нет slug.