Альтернатива файлу Apache .htaccess для IIS?

Я перемещаю блог WordPress с Apache на IIS. Это всего на пару недель, пока я его не поменяю. Но все, что я могу получить, это домашняя страница. Все остальное выдает ошибки.

Я думаю, что моя проблема в файле .htaccess:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
#END WordPress

Есть ли что-то эквивалентное этому для IIS?

Спасибо.


person user80151    schedule 22.11.2009    source источник
comment
Вы используете IIS или Apache в Windows?   -  person Frank Krueger    schedule 22.11.2009
comment
кроме того, какую ошибку выдает?   -  person Adrien Plisson    schedule 22.11.2009
comment
Использование ИИС. Ошибка: если я нажму на ссылку с подкаталогом, например mysite.com/news, я получу ошибку 404. Если я добавлю /index.php в адресную строку, я не укажу входной файл.   -  person user80151    schedule 22.11.2009


Ответы (4)


Я думаю, вы найдете ответ здесь - Как установить красивые постоянные ссылки в Wordpress, работающем на IIS 7 Думаю, вам нужно поместить один файл web.config в корневую папку, например:

<?xml version="1.0"?>
<configuration>
 <system.webServer>
 <defaultDocument>
  <files>
    <remove value="index.php" />
    <add value="index.php" />
  </files>
 </defaultDocument>
<rewrite>
 <rules>
     <rule name="Main Rule" stopProcessing="true">
         <match url=".*" />
         <conditions logicalGrouping="MatchAll">
             <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
             <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
         </conditions>
         <action type="Rewrite" url="index.php/{R:0}" />
     </rule>
 </rules>
</rewrite>
</system.webServer>
</configuration>
person Geek Blogger    schedule 10.02.2011

Для «симпатичных» постоянных ссылок обычно требуется mod_rewrite, а IIS (распространенный на серверах Windows) не поддерживает mod_rewrite.

Проверьте Кодекс Wordpress, особенно раздел Постоянные ссылки без перезаписи модов, так как в нем есть информация о постоянных ссылках в вашей среде ( некоторая информация ниже, проверьте ссылку для получения полной информации, так как это официальная документация):

Если вы используете IIS 7 и имеете права администратора на своем сервере, вместо этого вы можете использовать модуль перезаписи URL-адресов Microsoft. Хотя он не полностью совместим с mod_rewrite, он поддерживает красивые постоянные ссылки WordPress. После установки откройте файл web.config в папке WordPress и добавьте следующее правило в элемент system.webServer.

<rewrite>
    <rules>
        <rule name="Main Rule" stopProcessing="true">
            <match url=".*" />
            <conditions logicalGrouping="MatchAll">
                <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
            </conditions>
            <action type="Rewrite" url="index.php" />
        </rule>
    </rules>
</rewrite>
person GmonC    schedule 23.11.2009

Для «симпатичных» постоянных ссылок обычно требуется mod_rewrite, а IIS (распространенный на серверах Windows) не поддерживает mod_rewrite.

используете ли вы IIS6 или 7, вы также можете использовать механизм перезаписи в IIS — многие из них поддерживают синтаксис mod_rewrite.
IIRF хорош, работает как с IIS6, так и с 7. (Vista, WS2003, 2008).

person Cheeso    schedule 25.11.2009

Выполнил новую установку WordPress, а затем выборочно импортировал таблицы.

Проблема была, конечно, в постоянных ссылках. Но я обнаружил, что самый простой способ исправить это — использовать ту же структуру постоянных ссылок, что и на старом сайте (к счастью, она еще не удалена, поэтому я мог найти ее в админке), а затем импортировать все, кроме пользовательских таблиц.

Если вы импортируете пользовательские таблицы, вы потеряете логин администратора из новой настройки.

person user80151    schedule 23.11.2009