Blog (17)
Komentarze (76)
Recenzje (0)
@kaluzaaaAzure Web Site i .htaccess

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.

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.

470190

Z menu po prawnej stornie wybieramy Import Rules…

470192

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

470194

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>

<rules>

<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>
Wybrane dla Ciebie
Komentarze (0)