Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Azure Web Site i .htaccess

W chmurze Microsoftu pojawiła się możliwość hostowania witryn. Usługa ta nazywa się Windows Azure Web Site. Hosting ten występuję również w wersji darmowej. Darmowa wersja jest oczywiście z pewnymi ograniczeniami :) - http://www.windowsazure.com/en-us/develop/net/aspnet/. @mktos już miał okazję opisać darmową wersję - http://www.dobreprogramy.pl/mktos/Darmowa-strona-WWW-na-Windows-Azure,...

Postanowiłem wypróbować WordPress’a korzystając z galerii w Azure. W trakcie użycia WordPress’a na Azure Web Site pojawiły się problemy z prawidłowym działaniem permalinks. Chciałem, aby permalinki były ustawione na http://blog.jakas.domena.com/%postname%. Po takim ustawieniu nie działało nic po za stroną główną. Za taki stan jest odpowiedzialna domyślna konfiguracja WordPress’a lub jak ktoś może uważać wina srury. Wordpress trafia do nas z konfiguracją przepisywania adresów zdefiniowaną w pliku .htaccess dla modułu mod_rewrite. Azure nie bazuje na Apach’u, ale na IIS i wykorzystuje moduł URL Rewrite. Do poprawnego działania trzeba przetłumaczyć reguły z mod_rewrite do URL Rewrite i zapisać je do pliku web.config.

Na szczęście kawałek z tłumaczeniem reguł jest ułatwiony i może zrobić za nas to automat, ale wymagana jest instalacja IIS lokalnie na Windowsie oraz modułu URL Rewrite.

r   e   k   l   a   m   a

Aby dokonać tłumaczenia instalujemy lokalnie IIS. Opis dla Windows 7 znajdziemy tutaj. Po instalacji IIS instalujemy URL Rewrite z tej strony http://www.iis.net/download/urlrewrite. Następnie uruchamiamy menadżer IIS. Przechodzimy do Site -> Default Web Site i klikamy na URL Rewrite.

Z menu po prawnej stornie wybieramy Import Rules…

Wskazujemy plik .htaccess i klikamy Import. W zakładce Xml View mamy przekonwertowane reguły. Teraz wystarczy je przekopiować do pliku web.config.

Plik web.config, który ma zawierać tylko reguły do przepisywania urli będzie wyglądał tak:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
Tutaj wklej zawartość przekonwertowane reguły
</system.webServer>
</configuration>

A tak wygląda plik z domyślnymi regułami dla WordPress’a:


<?xml version="1.0" encoding="UTF-8"?>
<configuration>
 <system.webServer>
 <rewrite>
 <!--This directive was not converted because it is not supported by IIS: RewriteBase /.-->
 <rules>
 <!--# BEGIN WordPress-->
 <rule name="Imported Rule 1" stopProcessing="true">
 <match url="^index\.php$" ignoreCase="false" />
 <action type="None" />
 </rule>
 <rule name="Imported Rule 2" stopProcessing="true">
 <match url="." ignoreCase="false" />
 <conditions>
 <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
 <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
 </conditions>
 <action type="Rewrite" url="/index.php" />
 </rule>
 </rules>
 </rewrite>
 </system.webServer>
</configuration>

 

windows programowanie serwery

Komentarze