Wpis z mikrobloga

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:

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
  • 21
@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 %{REQUEST
URI} !^/index\.php
@astra2k: kuzwa dobrze napisalem ale WAMP-a mam #!$%@?. na linuksie dobrze chodzi

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
@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ą