Диманические ссылки в PhP не работают после миграции сайта - PullRequest
2 голосов
/ 21 января 2011

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

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

К сожалению, не было никакого оригинального документа .htaccess с исходного хост-сервера, чтобы я мог проверить конфигурацию, и сайту, похоже, даже не нужен один для правильной работы, так что теперь я нахожусь в своем уме - любая помощь будет с благодарностью!

Вот пример кода из одного из пунктов меню:

<div class="menu-membership<?=(($p)=="membership" ? "n" : "") ?>"><?=(($p)!="membership" ? "<a href=\"/membership/\"><img src=\"/images/menu/m-membership-grey.gif\" /></a>" : "<img src=\"/images/menu/m-membership-red.gif\" />") ?>
        <?php if(($p)=="membership") { ?><ul class="submenu">
        <li><a href="/membership/how-to-join/">How to Join</a></li>
        <li><a href="/membership/faq/">FAQ</a></li>
        <li><a href="/application/">Apply Now</a></li></ul>
        <?php } ?>
        </div>

Читаемая версия:

<div class="menu-membership<?php echo $p == "membership" ? "n" : ""; ?>">
    <?php if ($p != "membership") : ?>
        <a href="/membership/"><img src="/images/menu/m-membership-grey.gif" /></a>
    <?php else : ?>
        <img src="/images/menu/m-membership-red.gif" />
    <?php endif; ?>
    <?php if ($p == "membership") : ?>
        <ul class="submenu">
            <li><a href="/membership/how-to-join/">How to Join</a></li>
            <li><a href="/membership/faq/">FAQ</a></li>
            <li><a href="/application/">Apply Now</a></li>
        </ul>
    <?php endif; ?>
</div>

1 Ответ

0 голосов
/ 21 января 2011

Таким образом, похоже, что на самом деле файла /membership/index.php нет, вы просто использовали метод перезаписи «чистый URL», чтобы изменить URL-адреса, такие как /index.php?n=membership, на «плоский» URLстиль?

также, на вашем старом сервере размещалось несколько сайтов?В этом случае ваши правила переписывания apache, вероятно, находятся в файле vhosts, а не в httpd.conf.Это или есть файлы .htaccess, и вы их не видите, потому что Mac скрывает все файлы, начинающиеся с. (Точка), которые вы можете просмотреть, изменив настройки Finder с помощью терминала (но вы все равно не можете видеть их через FTP при просмотре удаленного сервера Mac)

Кроме того, что такое URL-адрес или выходное сообщение для ErrorDocument 404?

Кроме того, при попытке использовать ErrorDocument для обработки запроса * 1008 обнаружена ошибка 404 Не найдено.*

означает, что у вас есть пользовательская страница документа об ошибке или сообщение, которое работает неправильно

...