Autor Zpráva
pete
Profil
zdravím,

až donedávna jsem používal adresy s parametry např. domena.tld/?neco=nazev. pak jsem si začal hrát s mod_rewrite a přepsal všechny adresy do tvaru domena.tld/neco/nazev ("neco" jsou různá slova). vrtají mi hlavou lae dvě věci:

1. jak přesměrovat všechny požadavky ze staré adresy domena.tld/?neco=nazev na novou domena.tld/neco/nazev (aby vyhledáváče plynule "najeli" na nové url a nevznikali duplicity)?

2. v případě že si chci "pojistit" to, že roboti nebudou indexovat staré url začínající parametrem, můžu použít v robots.txt tohle:
User-agent: *
Disallow: /?

je to správně, můžu tohle použít? (v případe že bych vyřešil (1), nebudu robots.txt potřebovat)

předem díky za rady.
Yuhů
Profil
tohle prosím příště rozděl na dva dotazy.

1. ano, tohle jde, ale není to jednoduché. Musí se to udělat přes mod_rewrite a umí to jenom Kajman. Popis popsal na stránce
http://www.jakpsatweb.cz/priklady/mod_rewrite/mod-rewrite-priklady.htm l#dyntostat

Zkus to.

2. S otazníkem v robots.txt je problém. Seznam interpretuje specifikaci jinak (také korektně) než ostatní vyhledávače, a tak z adres v robots.txt uřezává otazník a všechno, co je za ním. Zápisem
Disallow: /?
by se tedy pro Seznam zakázal celý web.

Ale i kdyby tohoto problému nebylo, stejně není dobrý nápad prostě to zakázat. Ten hlavní vtip spočívá v tom, že se to prostě musí přesměrovat.
pete
Profil
Díky, pomohlo to!

Ještě jeden dotázek: chtěl i přesměrovat některé "statické" stránky na nové url (kvůli přehledné struktuře), ale nasledující zápis mod_rewrite nefunguje, protože se nejspíš zacyklí:

RewriteCond %{REQUEST_URI} /rss.php
RewriteRule $ /poznamky/rss [R=301,L]
RewriteRule ^poznamky/rss rss.php

jak to upravit, aby k tomu nedocházelo?
Kajman
Profil *
Pokud to je jen ten jeden soubor, tak bych ho asi přejmenoval na rss2.php a bylo by po problémech.

RewriteRule ^rss\.php$ /poznamky/rss [R=301,L]
RewriteRule ^poznamky/rss$ rss2.php [L]

Pokud je třeba nechat název stejný, snad by šlo opět využít pomocného parametru.

RewriteCond %{QUERY_STRING} !^rw=1
RewriteRule ^rss\.php$ /poznamky/rss [R=301,L]
RewriteRule ^poznamky/rss$ rss.php?rw=1 [L,QSA]
pete
Profil
Díky! To je přesně to, co jsem potřeboval (to druhé).
Toto téma je uzamčeno. Odpověď nelze zaslat.

0