2015-05-07 3 views
0

У меня есть PHP сайт, размещенный в Windows (IIS). Домен хранится в Network Solutions, но сайт размещен на GoDaddy, поэтому у меня есть запись DNS в Network Solutions, которая разрешает имена «www» и «non-www» на сервере GoDaddy, где мой код есть.Страница не перенаправляется должным образом - цикл перенаправления PHP и IIS

Когда я перенаправлял правило перенаправления в свой файл IIS web.config для перенаправления запросов с разных страниц, я получаю то, что представляется циклом переадресации.
Firefox говорит:

The page isn't redirecting properly

IE просто говорит:

The page cannot be displayed

Chrome говорит:

This page has a redirect loop

Так что я пошел в Скрипач, который проверял кучу запросов, каждый из которых говорит, что сервер сообщает «Object Moved. This document may be found here» (при этом «здесь» является гиперссылкой на страницу, на которую должно быть перенаправлено), только это происходит снова и снова (цикл) ,

Возможно, это связано с тем, что сайт размещен где-то еще, где находится домен? Я застрял.

Вот мой файл web.config (фактический URL заменяется на «примере»):

<rewrite> 
    <rules> 
     <rule name="Redirect to forums" stopProcessing="true"> 
     <match url=".*" /> 
     <conditions> 
      <add input="(.*\.mysite.com)/([_0-9a-z-]+)" /> 
     </conditions> 
     <action type="Redirect" url="http://www.example.com/forums.php" /> 
     </rule> 
    </rules> 
</rewrite> 

Кто-то предложил убрать «http://» из приведенных выше действий, которые я попробовал, но я все еще получаю ошибку.

Любая помощь будет очень признательна. Благодарю.

+0

Я никогда не использовал IIS, но в «.htaccess» apache вы могли добавить код статуса ответа HTTP вместе с перенаправлением. Например, '301' используется, когда страница« постоянно перемещена ». –

ответ

0

Просто заметил глупую ошибку: В блоке,

<add input="(.*\.mysite.com)/([_0-9a-z-]+)" /> 

Область поиска должно быть указано, а также шаблон для сопоставления в отдельный аргумент. Не было никакого утверждения «pattern =»! Это должно быть так:

<add input="{HTTP_HOST}" pattern="(.*\.mysite.com)/([_0-9a-z-]+)" /> 

DOH! Я устал.

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