Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przekierowanie .htaccess
Forum PHP.pl > Forum > Serwery WWW
mateuszpi
Mam prośbę czy możecie mi podać przykład uproszczenie adresu w pliku .htaccess

Mam stronę: www.domena.pl/index.php?option=com2&Task=sols&catid=&2Id=13&Itemid=&lang=pl
chce aby wpisanie w przeglądarce adresu: www.domena.pl/strona/

przenosiło mnie na powyższy adres. czy jest to możliwe ?
404
Tak, jest to możliwe. Poczytaj: https://wiki.apache.org/httpd/RewriteQueryString.
mateuszpi
A możesz coś więcej podpowiedzieć. Bo moje kombinacje cos mi nie działają:

Kod
RewriteCond% www.domena.pl/index.php?option=com2&Task=sols&catid=&2Id=13&Itemid=&lang=pl ^ $
RewriteRule ^ www.domena.pl/strona/ ?


efektu nie ma żadnego. cokolwiek wpiszę w przeglądarce wyskakuje błąd serwera.
404
Kod
RewriteCond %{QUERY_STRING} option=com2&Task=sols&catid=&2Id=13&Itemid=&lang=pl$ [NC]
RewriteRule ^(.*)$ www.domena.pl/strona/ [R=301,L]
mateuszpi
tym razem jest błąd 404 strona nie istnieje

w tej pierwszej linijce próbowałęm też dopisac nazwę pliku z php ale błąd był ten sam.
404
Hm, ale przekierowanie działa, tak? Jeżeli zrobisz tak:
Kod
RewriteCond %{QUERY_STRING} option=com2&Task=sols&catid=&2Id=13&Itemid=&lang=pl$ [NC]
RewriteRule ^(.*)$ https://www.google.com [R=301,L]
Czy wyświetla Ci się strona Google?
mateuszpi
no to mamy małe nieporozumienie. po wpisaniu option=com2&Task=sols&catid=&2Id=13&Itemid=&lang=pl pojawia się strona google. a ja bym chciał odwrotnie, aby po wpisaniu google pojawiała sie strona option=com2&Task=sols&catid=&2Id=13&Itemid=&lang=pl

czyli chyba tak to trzeba zmienić:
Kod
RewriteCond %{QUERY_STRING} google$ [NC]
RewriteRule ^(.*)$ http://www.google.pl/option=com2&Task=sols&catid=&2Id=13&Itemid=&lang=pl [R=301,L]


powyższe działa jednak muszę wpisywać www.indianie.info/?google
a bez tego pytajnika się by nie dało ?
404
Przepraszam, źle przeczytałem Twój pierwszy post.
Kod
RewriteRule strona/$ index.php?option=com2&Task=sols&catid=&2Id=13&Itemid=&lang=pl [R=301,L]
mateuszpi
teraz ja czegoś nie rozumiem, powyższa zmiana powoduje brak przekierowania.

ale jeszcze raz. chce aby po wpisaniu w pasku adresu przeglądarki www.indianie.info/google
byłem przenoszony automatycznie na adres http://www.google.pl/option=com2&Task=...id=&lang=pl

obecnie w pliku mam wpis:
Kod
RewriteCond %{QUERY_STRING} google$ [NC]
RewriteRule ^(.*)$ http://www.google.pl/option=com2&Task=sols&catid=&2Id=13&Itemid=&lang=pl [R=301,L]


i działa prawie idealnie. Jednak w pasku adresu muszę wpisywać www.indianie.info/?google a potrzebuje wersję bez tego pytajnika.
trueblue
google w Twoim adresie to nie QUERY_STRING, a REQUEST_URI

RewriteCond %{REQUEST_URI} ^/google$ [NC]
RewriteRule ^(.*)$ http://www.google.pl/option=com2&Task=...id=&lang=pl [R=301,L]
404
Nie chodziło mi o to żebyś zamienił linijkę:
Kod
RewriteRule ^(.*)$ http://www.google.pl/option=com2&Task=sols&catid=&2Id=13&Itemid=&lang=pl [R=301,L]
na
Kod
RewriteRule strona/$ index.php?option=com2&Task=sols&catid=&2Id=13&Itemid=&lang=pl [R=301,L]
...tylko żebyś usunął wszystko co podałem wcześniej i wstawił linijkę:
Kod
RewriteRule google$ http://www.google.pl/option=com2&Task=sols&catid=&2Id=13&Itemid=&lang=pl [R=301,L]

Tak powinien wyglądać Twój plik .htaccess:
Kod
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule google$ http://www.google.pl/option=com2&Task=sols&catid=&2Id=13&Itemid=&lang=pl [R=301,L]
</IfModule>


Tak jak kolega @trueblue pisał wyżej też można.
mateuszpi
dziękuje smile.gif działa wyśmienicie
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.