Есть идеи, как включить чистые URL-адреса в drupal, когда сервером является IIS?
Быстрый поиск в Google вернул это руководство, URL-адреса Drupal Clean на IIS. Это полезно?
После небольшой боли, мой великий администратор хостинга и мне удалось получить Ionic ISAPI Rewriting Filter (IIRF) 2.0.1.1013 RELEASE, работающий над IIS v6.0. Я думал, что опубликую, как у нас это работает; и надеюсь, наше решение вам поможет!
До того, как я начал, у меня был сайт, работающий на другом типе сервера, поэтому у меня возникли проблемы с существующей конфигурацией Drupal. Итак, если у вас уже есть сайт, настроенный в другом месте, убедитесь, что вы сделали следующее перед переход на новый сервер:
Global Redirect
модуль включен, убедитесь, что вы установили для параметра «Non-clean to Clean» значение «Off» в Admin -> Site Configuration -> Global RedirectВот шаги, которые мы предприняли, чтобы заставить его работать:
StatusUrl /iirsStatus RemoteOk
. Затем мы проверили, работает ли IIRS, перейдя в http://mysite.example.com/iirsStatus
. Он должен распечатать для вас некоторые строки состояния.Global Redirect
есть вариант «От чистых до чистых»! Он будет перенаправлять страницу бесконечно.IirfGlobal.ini:
RewriteEngine ON
RewriteFilterPriority DEFAULT
NotifyLog OFF
Iirf.ini:
# Do not pass to drupal if the file or directory exists
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# Handle query strings on the end
RewriteRule /(.*)\?(.*)$ /index.php\?q=$1&$2 [I,L]
# now pass through to the generic handler
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/(.*)$ /index.php?q=$1 [I,L]
На сайте Drupal есть документация об использовании чистых URL-адресов в II6, которые я сейчас использую. Проверять, выписываться http://drupal.org/node/3854.
Короткий ответ: загрузите ISAPI Rewrite 2 lite из http://www.isapirewrite.com/. Облегченная версия позволяет настроить только один набор правил перезаписи для всей конфигурации IIS, но работает хорошо и бесплатна.
Платная версия позволяет вам указывать правила перезаписи для каждого сайта, который вы настроили в IIS, но для этого требуется дополнительная настройка IIS.
Я использую следующие правила ISAPI:
# Helicon ISAPI_Rewrite configuration file # Version 3.1.0.62 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !=/favicon.ico RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA]
Если ваша установка Drupal была установлена в подкаталоге, вам нужно немного изменить эти правила.
Я уже некоторое время использую Ionic Rewrite ... это бесплатно и отлично работает
Мне удалось реализовать это, установив модуль перезаписи URL и создав файл web.config в базовом каталоге с таким кодом:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<rewrite>
<rules>
<rule name="Drupal clean URLs" enabled="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_URI}" negate="true" pattern="/favicon.ico$" />
</conditions>
<action type="Rewrite" url="index.php?q={R:1}" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</configuration>
Больше информации в этом посте, который продолжается: «Вам также необходимо установить исправление для исправления поведения REQUEST_URI при использовании PHP через модуль FastCGI. См. KB954946 Чтобы получить больше информации. Симптомом этой проблемы является то, что все отправленные формы перенаправляются на главную страницу сайта ".
IIRF это бесплатный редактор URL-адресов, работает на IIS и работает с drupal.