--=REKLAMA=--
Proste adresy internetowe nazywane też czytelnymi dla człowieka (human-readable), czystymi albo przyjaznymi dla wyszukiwarek (Search Engine Friendly, SEF) to adresy URL, które mają sens zarówno dla ludzi, jak i wyszukiwarek, ponieważ objaśniają ścieżki do stron, na które wskazują. Człowiek może je łatwo zapisać, zapamiętać i przeczytać, a robot wyszukiwarki zidentyfikować na ich podstawie strukturę witryny i prawidłowo ją zaindeksować.
Od wersji 1.5, Joomla! jest zdolny do tworzenia i przetwarzania adresów URL w dowolnym formacie, w tym adresów przyjaznych dla wyszukiwarek. Funkcja ta nie jest zależna od translacji (przepisywania) URL przez serwer WWW, działa, nawet jeśli Joomla jest zainstalowany na innym serwerze niż Apache z modułem mod_rewrite. Proste adresy tworzone są według ustalonego wzorca, ale użytkownik może sam zdefiniować krótki tekst opisowy (alias) dla każdego segmentu adresu URL.
Wewnętrzna, lokalna część prostego adresu URL (część po nazwie domeny) nazywa się trasą (route. Dlatego tworzenie i przetwarzanie adresów SEF nazywane jest dalej trasowaniem (routing), a odpowiedni kod nazywany jest ruterem (router).
Procedura umożliwiająca włączenie prostych adresów różni się w zależności od serwera WWW, którego używasz. Jeśli używasz hostingu współdzielonego, to jest to prawdopodobnie Apache. Jeśli nie jesteś pewien, zapytaj swojego dostawcę usług hostingowych.
Na tej stronie zostały uwzględnione tylko najbardziej popularne serwery. Odwiedź stronę i stronę:, aby zobaczyć więcej artykułów.
Oto instrukcja krok po kroku. Należy je wykonywać w prezentowanej tutaj kolejności. Jeżeli krok nie przyniesie efektu, nie należy kontynuować do momentu rozwiązania problemu.
"htaccess.txt"
w głównym katalogu witryny Joomla! na ".htaccess"
( więcej o .htaccess).
.htaccess
w edytorze tekstu. Odkomentuj polecenie RewriteBase /
(usuń początkowy znak #). Jeśli Joomla jest zainstalowany w podkatalogu, wprowadź jego nazwę po ukośniku. np. RewriteBase /twojkatalogjoomla
.
http://www.przyklad.com/index.php/nowiny/1-ostatnie-nowiny/1-witaj-u-joomla.
http://www.przyklad.com/nowiny/1-ostatnie-nowiny/1-witaj-u-joomla.
.
apache/conf/httpd.conf
, otwórz ten plik i sprawdź czy linia LoadModule rewrite_module modules/mod_rewrite.so
jest odkomentowana. Jeśli to konieczne, usuń znak komentarza i ponownie uruchomić serwer WWW Apache.
.htaccess
niezmieniony.
.html
. Istnieją różne opinie na temat tego, czy jest to konieczne, a nawet użyteczne. Wyszukiwarek nie obchodzi, czy adresy URL są zakończone przyrostkiem .html
.
Jeżeli korzystasz z PHP działającego na serwerze IIS, możesz skorzystać z własnego wewnętrznego mechanizmu serwera IIS przepisującego adresy URL na proste za pomocą pliku web.config podobnego do przedstawionego poniżej.
Możesz utworzyć plik samodzielnie lub skorzystać z GUI w menadzerze IIS7. Możesz importować reguły z .htaccess za pomocą GUI/wizard.
Funkcja ta wymaga obecności IIS URL Rewrite Module (Ponowne zapisywanie adresów w wersji 2.0), który nie należy do systemu Windows. Można go pobrać za darmo ze strony produktów Microsoft.
Jeśli moduł IIS URL Rewrite jest zainstalowany, na stronie menedżera będzie narzędzie do "Zapisywania adresów URL" ("URL Rewrite"), widoczne w zestawie konfigurowalnych modułów usług IIS. Interfejs jest w dużej mierze oczywisty. Wspierane są wyrażenia regularne, symbole wieloznaczne i dokładne dopasowanie.
Zaloguj się na zaplecze, otwórz stronę Konfiguracja globalna, włącz obie opcje - Proste adresy' oraz Użyj Apache mod_rewrite / Zastosuj przepisywanie URL i Zapisz.
Następnie w IIS URL Rewrite dodaj poniższą regułę:
Plik został przetestowany na Joomla 1.5 z IIS 7 w systemie Windows Server 2008 bez żadnych problemów do tej pory. Aby uzyskać więcej informacji na temat konwersji. htaccess do pliku web.config, sprawdź http://learn.iis.net/page.aspx/557/translate-htaccess-content-to-iis-webconfig/
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <clear /> <rule name="Common Exploit Blocking" stopProcessing="true"> <match url="^(.*)$" /> <conditions logicalGrouping="MatchAny"> <add input="{QUERY_STRING}" pattern="mosConfig_[a-zA-Z_]{1,21}(=|\%3D)" /> <add input="{QUERY_STRING}" pattern="base64_encode.*\(.*\)" /> <add input="{QUERY_STRING}" pattern="(\<|%3C).*script.*(\>|%3E)" /> <add input="{QUERY_STRING}" pattern="GLOBALS(=|\[|\%[0-9A-Z]{0,2})" /> <add input="{QUERY_STRING}" pattern="_REQUEST(=|\[|\%[0-9A-Z]{0,2})" /> </conditions> <action type="Redirect" url="index.php" appendQueryString="false" redirectType="SeeOther" /> </rule> <rule name="Joomla Search Rule" stopProcessing="true"> <match url="(.*)" ignoreCase="true" /> <conditions logicalGrouping="MatchAll"> <add input="{URL}" pattern="^/search.php" ignoreCase="true" /> </conditions> <action type="Rewrite" url="/index.php?option=com_content&view=article&id=4" /> </rule> <rule name="Joomla Main Rewrite Rule" stopProcessing="true"> <match url="(.*)" ignoreCase="true" /> <conditions logicalGrouping="MatchAll"> <add input="{URL}" pattern="(/[^.]*|\.(php|html?|feed|pdf|raw))$" /> <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> <caching> <profiles> <add extension=".php" policy="DisableCache" kernelCachePolicy="DisableCache" /> </profiles> </caching> </system.webServer> </configuration>
# Support Clean (aka Search Engine Friendly) URLs</tt> location / { try_files $uri $uri/ /index.php?q=$request_uri; }
http://www.przyklad.com/index.php/nowiny/1-ostatnie-nowiny/1-witaj-u-joomla.
http://www.przyklad.com/nowiny/1-ostatnie-nowiny/1-witaj-u-joomla.
.
apache/conf/httpd.conf
, otwórz ten plik i sprawdź czy linia LoadModule rewrite_module modules/mod_rewrite.so
jest odkomentowana. Jeśli to konieczne, usuń znak komentarza i ponownie uruchom serwer.
.htaccess
niezmieniony.
.html
. Istnieją różne opinie na temat tego, czy jest to konieczne, a nawet użyteczne. Wyszukiwarek nie obchodzi, czy adresy URL są zakończone przyrostkiem .html
.