Joomla w IIS 7: przyjazne adresy URL nie działają

  1. Joomla w IIS 7: przyjazne adresy URL nie działają
  2. Rozwiązanie

Joomla w IIS 7: przyjazne adresy URL nie działają

Scenariusz:

Scenariusz
Ponieważ zapewniamy naszym klientom usługę migracji Joomla, czasami musimy przenieść stronę Joomla z serwera Linux na Windows. Zgłoszonych zostanie kilka problemów ze zgodnością. Reguły w pliku .htaccess nie będą działać w serwerach Windows, co spowoduje nieprawidłowe działanie witryny. Oto kroki, jak radzić sobie z tymi problemami.

Rozwiązanie

Aby to działało w IIS, należy utworzyć plik web.config i zaimportować odpowiednie reguły w .htaccess do tego samego pliku. Oto przykładowy plik web.config. Skopiuj całą zawartość.

&lt;? xml version = "1.0&quot; encoding = "UTF-8"?> <konfiguracja> <system.webServer> <rewrite> <rules> <nazwa reguły = "Reguła bezpieczeństwa" stopProcessing = "true"> <match url = " ^ (. *) $ "ignoreCase =" false "/> <warunki logicalGrouping =" MatchAny "> <add input =" {QUERY_STRING} "pattern =" mosConfig_ [a-zA-Z _] {1,21} (= | % 3D) "ignoreCase =" false "/> <add input =" {QUERY_STRING} "pattern =" base64_encode. * (. *) "IgnoreCase =" false "/> <add input =" {QUERY_STRING} " pattern = "(lt; |% 3C). * skrypt. * (> |% 3E)" /> <add input = "{QUERY_STRING}" pattern = "GLOBALS (= | 9A-Z] {0,2}) "ignoreCase =" false "/> <add input =" {QUERY_STRING} "wzorzec =" _ ŻĄDANIE (= | | | | | [0-9A-Z] {0,2 }) "ignoreCase =" false "/> </conditions> <action type =" CustomResponse "url =" index.php "statusCode =" 403 "statusReason =" Forbidden "statusDescription =" Forbidden "/> </rule> < rule name = "SEO Rule"> <match url = "(. *)" ignoreCase = "false" /> <warunki logicalGrouping = "MatchAll"> <add input = "{REQUEST_FILENAME}" matchType = "IsFile" negate = " true "pattern =" "ignoreCase =" false "/> <dodaj input = "{REQUEST_FILENAME}" matchType = "IsDirectory" negate = "true" pattern = "" ignoreCase = "false" /> <add input = "{URL}" negate = "true" pattern = "^ / index.php "ignoreCase =" false "/> <add input =" {URL} "pattern =" (/ | php | html | .htm | feed | pdf | |raw | / [^ .] *) $ "/> </conditions> <action type =" Rewrite "url =" index.php "/> </rule> </rules> </rewrite> </system.webServer> </configuration>

Tak więc plik web.config jest gotowy. Teraz reguły w .htaccess muszą zostać przekonwertowane zgodnie z IIS. W IIS6 możesz skorzystać z modułu ISAPI_REWRITE. Przejdź do http://www.isapirewrite.com/, aby go pobrać.

Jeśli korzystasz z IIS7, oto kroki związane z konwersją tych reguł.

Wersję modułu przepisywania adresów URL w wersji x86 można pobrać tutaj: com/?linkid=9722533> http://go.microsoft.com/?linkid=9722533

Wersję x6 modułu do przepisywania adresów URL można pobrać tutaj: com/?linkid=9722532.> http://go.microsoft.com/?linkid=9722532

Zainstaluj moduł, uruchom ponownie menedżera IIS. Wybierz witrynę, w której musisz przekonwertować reguły (w kategorii Witryny). Zobaczysz moduł „Przepisz URL” w IIS.

Otwórz to. Ponieważ plik web.config jest już utworzony z niektórymi predefiniowanymi regułami, zobaczysz go jako reguły przychodzące (według nazw - reguły bezpieczeństwa i reguły SEO).

Możesz przekonwertować reguły w pliku .htaccess, uzyskując dostęp do „reguł importu” w kategorii Reguły przychodzące w okienku Akcje.

Wybierz plik .htaccess i kliknij Importuj. Zobaczysz zasady w sekcji „Reguły przepisywania” i przekonwertowane reguły w opcji „Reguły przekształcone”. Kliknij przycisk Zastosuj w okienku Akcje po prawej stronie, aby zapisać te reguły w pliku web.config (jeśli plik web.config nie został utworzony, jak wspomniano wcześniej, plik ten zostanie utworzony na nowo). Upewnij się, że konwersja nie powoduje konfliktów. Obejrzyj podsumowanie na dole. Wystąpił konflikt, gdy to zrobiliśmy, pokazany tutaj. W takich przypadkach usuń nieobsługiwane reguły, a następnie kliknij przycisk Zastosuj.

Konwersja PHP do FastCGI

Robimy to z panelu sterowania Plesk. Jeśli nie masz dostępu administratora, może być konieczne skontaktowanie się z administratorem. Inni (Bogowie!) Czytają dalej

Wybierz domenę, przejdź do ustawień Web Hosting.

Przewiń w dół do Usługi. Wybierz obsługę PHP, aby działała jako aplikacja FastCGI.

Ostatnie kroki

Przejdź do interfejsu administratora Joomla. Uzyskaj dostęp do konfiguracji globalnej z menu głównego. W Ustawieniach SEO upewnij się, że następujące ustawienia są ustawione na Tak

Przyjazne dla wyszukiwarki adresy URL: tak

Użyj Apache mod_rewrite: Tak

Gotowe, od teraz Twoja strona Joomla powinna działać tak sprawnie jak na serwerze Linux. Usiądź wygodnie i ciesz się!

Aby uzyskać dalszą pomoc, skontaktuj się z naszym zespołem obsługi migracji Joomla Tutaj

Kategoria: Rozwiązywanie problemów, Windows

Lt;?
Quot; encoding = "UTF-8"?
Com/?
Com/?