Как мне заставить мои php-сайты, использующие файлы .htaccess, выполнять базовую перезапись URL для работы на новом сервере Windows? - PullRequest
0 голосов
/ 02 июля 2010

Я только что купил новый сервер Windows с IIS на нем и панелью plesk. Хорошие времена (я думал ...)

У меня есть около 10 клиентских сайтов, которые работают на PHP, что не должно быть проблемой. Но я не могу получить ответ от своего хостинг-провайдера о том, как заставить мой .htaccess работать на Windows-сервере, поэтому меня задело на два хостинга, и я не знаю лучшего пути вперед.

Как мне переписать мой .htaccess на Windows?

EDIT Я установил IIS версии 2 их модуля перезаписи и попытался преобразовать мой файл .htaccess в набор правил web.config.

Теперь мой очень простой сайт, который использует Zend Framework, показывает 404 для домашней страницы (90% времени) и другие страницы для отображения сайта, но все они показывают домашнюю страницу.

Есть идеи или у кого-нибудь были подобные проблемы?

Скоро опубликует правила, которые я использую, и старый файл .htaccess, который раньше работал.

.htaccess из файла linux setup

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

версия Windows

<rewrite>
  <rules>
    <rule name="Imported Rule 1" stopProcessing="true">
      <match url="^.*$" />
      <conditions logicalGrouping="MatchAny">
        <add input="{REQUEST_FILENAME}" matchType="IsFile"  />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory"  />
      </conditions>
      <action type="None" />
    </rule>
    <rule name="Imported Rule 2" stopProcessing="true">
      <match url="^.*$" />
      <action type="Rewrite" url="index.php" />
    </rule>
  </rules>
</rewrite>

1 Ответ

2 голосов
/ 02 июля 2010
Файлы

.htaccess относятся к веб-серверу Apache. Они не собираются ничего делать в IIS.

Вам необходимо преобразовать их в формат, понятный IIS. Вот учебник .

...