Mircy, potrzebuję pomocy z 2 regułami w .htaccess: by mieć jednocześnie przekierowanie na wariant z www a także przekierowanie z www.domena.com na www.domena.com/pl/ również dla podstron, poniższy kod nie do końca się sprawdza:
Na www naturalnie przekierowuje bo to prosta sprawa, jednak przy doklejaniu /pl/ się zapętla i tworzy /pl/pl/pl/pl/pl - przyznaję, że składnia tego jest dla mnie czarną magią, robię to metodą prób i błędów jednak mam wrażenie, że przyczyna jest w ostatniej linijce która to powinna zabezpieczać przed drugim przebiegiem wykonania tego przepisania, tylko jak to napisać?
@KotletyMielone: Próbowałem także w ten sposób niestety bez efektu, nie wiem czy ostatnia linijka jest w ogóle logiczna i tam nie walnąłem jakiegoś babola.
@astra2k: aj dobra wiem czemu ci nie dziala. wszystko jest ok al zrobiłeś R=301 (pernament redirect) i przegladarka zcachowała i zapamietała. spróbuj na innej przegladarce bedzie ok
@KotletyMielone: to wziąłem pod uwagę i w przykładzie dałem 301 ale testuję na 302 by właśnie w cache nie siedziało, jeszcze pogrzebię czy nie ma w pliku innych przekierowań bo to domyślnie mocno zawalony .htaccess Joomli także mogłem coś przeoczyć i się gryzie
@KotletyMielone: tak masz rację, po otworzeniu w trybie prywatnym działa teoretycznie ale przekierowuje teraz na www.domena.com/pl/index.php (co powoduje error, nie ładuje strony i zapętlenie przekierowań) a to zapewne dlatego:
## Begin - Joomla! core SEF Section. # RewriteRule .* - [E=HTTPAUTHORIZATION:%{HTTP:Authorization}] # # If the requested path and file is not /index.php and the request # has not already been internally rewritten to the index.php script RewriteCond %{REQUESTURI} !^/index\.php
@KotletyMielone: wygląda na to, że działa bo adres w pasku zmienia się dokładnie jak trzeba czy z www czy bez ale przeglądarka zwraca błąd zbyt wielu przekierowań - czy to jest właśnie kwestia tego routingu w joomli zapewne i bez grzebania w kodzie się nie obejdzie? I tak jest postęp, szacun za umiejętności i wiedzę, dziękuję :)
@KotletyMielone: dokładnie ten sam error o zbyt wielu przekierowaniach, po zakomentowaniu tego ewentualnego wpisu również, tworzy pętlę 11 przekierowań także chyba to nie przez sam .htaccess takie cuda są
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule ^(.*)$ http://www.%{HTTPHOST}%{REQUESTURI} [L,R=301]
RewriteCond %{REQUEST_FILENAME} !/pl/
RewriteRule ^(.*)$ /pl/$1 [R=301,L]
Na www naturalnie przekierowuje bo to prosta sprawa, jednak przy doklejaniu /pl/ się zapętla i tworzy /pl/pl/pl/pl/pl - przyznaję, że składnia tego jest dla mnie czarną magią, robię to metodą prób i błędów jednak mam wrażenie, że przyczyna jest w ostatniej linijce która to powinna zabezpieczać przed drugim przebiegiem wykonania tego przepisania, tylko jak to napisać?
#php #seo #pozycjonowanie #modrewrite
RewriteCond %{REQUEST_URI} !^/pl/.*$
zamiast
RewriteCond %{REQUEST_FILENAME} !/pl/
## Begin - Joomla! core SEF Section.
#
RewriteRule .* - [E=HTTPAUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUESTURI} !^/index\.php
nie wiem jak routing wyglada w joomli ale pewnie bedziesz musial w kodzie zmieniac
Komentarz usunięty przez autora
calosc.
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule ^(.*)$ http://www.%{HTTPHOST}%{REQUESTURI} [L,R=301]
RewriteCond %{REQUEST_URI} !^/pl/.*$
RewriteRule ^(.*)$ /pl/$1 [R=301,L]
RewriteRule ^pl/(.*)$ $1
# to nizej jest po to zeby apache nie dokladal /index.php. sprobuj bez tego bo sie zdaje ze joomla robi to samo
RewriteRule ^pl/$ index.php
# tutaj wklej joomle
i jak pisalem nie wiem
ewentualnie wyjeb samo
RewriteCond %{REQUESTURI} !^/index.php
bo zdaje sie ze to rujnuje sprawe
na linuksie mi smiga normalnie a na wampa nawet nie dziala mi
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^pl/(.*)$ test.php