Autor Zpráva
Paja222
Profil
Ahojte, potřeboval bych poradit ohledně htaccessu a mod rewrite

Mám stránky a přeházím na jiný systém adres - bez parametru

dosavadní systém byl: http://domena.cz/?str=novinky/novinka-1 a pomocí htaccessu bych potřeboval, aby se adresa přesměrovala na http://domena.cz/novinky/novinka-1, samozřejmě na původní stránku poslat kvůli SEO error kód 301.

URL může obsahovat i další proměnné v parametru, které bych potřeboval uchovat (ale pokud to nepůjde, nevadí) název stránky bude vždy ve ?str=.

Díky všem :-)
Davex
Profil
Stačí si upravit jména parametrů v pravidlech z tématu Problém s duplicitou stránek.
Paja222
Profil
Děkuji, našel jsem tam toto:

# přesměrování na URL bez parametru
RewriteCond %{QUERY_STRING} ^page=([^&]+)$
RewriteRule ^index\.php|$ %1? [R=301,L]

Což funguje - ovšem s jedním problémem. ?str=novinky/novinka-1 to přehodí v pohodě na /novinky/novinka-1 ovšem, když je v adrese ?str=novinky/novinka-1&neco=necodalsiho, neprovede se již vůbec nic a nechá adresu takovou, jaká je.
Davex
Profil
Paja222:
Ten druhý parametr se musí získat upraveným regulárním výrazem z proměnné %{QUERY_STRING} asi nějak podle pravidla v Úprava mod rewrite.
Paja222
Profil
Lituji, ale toto při přepisu:

RewriteCond %{QUERY_STRING} ^str=([^&]+)&(.*)$
RewriteRule index.php$ /%1?%2 [R=301,L]

Nedělá již vůbec nic. Nemohl byste mi poradit, jak tyto 2 pravidla zkombinovat, aby to šlo?

první parametr je vždy ?str= a druhý (který je jen občas) je &cln=

Díky.

EDIT:
Tak již jsem na to asi přišel:

RewriteCond %{QUERY_STRING} ^str=([^&]+)(&v=(.*))?$
RewriteRule ^index\.php|$ %1/%3? [R=301,L]

A zdá se, že to funguje. Poprosil bych tedy někoho o kontrolu, díky.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: