Autor Zpráva
pink
Profil *
Dobrý den,
na webu pink.nazory.cz mám několik duplicitních stránek.

http://www.pink. nazory.cz/index.php
http://pink. nazory.cz
http://pink. nazory.cz/index.php


Potřeboval bych všechny zde uvedené adresy přesměrovat na jednu jedinou http://www.pink.nazory.cz.
Můžete mi poradit, jak to mám udělat?
Na jakpsatweb.cz a na internetu jsem přečetl několik návodů, ale nějak se v tom nevyzná,. Proto se obracím na Vás, zda-li byste mi s tím nepomohli. Děkuji
mattyZEM
Profil
Musíš přes htaccess nastavit přesměrování, pokud je před odkazem www, nebo není (to si musíš nastavit dle svého).

#Duplicita www - přesmerovává na verzi s www
RewriteCond %{HTTP_HOST} ^pink.nazory.cz
RewriteRule (.*) http://www.pink.nazory.cz/ [R=301,L]
pink
Profil *
Zadal jsem do htaccess přesně to co si tady uvedl. Jenže teď když zadám do vyhledávače adresu http://www.pink.nazory.cz web se nezobrazí a ukáže se mi chyba 500..
Davex
Profil
Na začátku je ještě nutné zapnout používání mod_rewrite a pravidlo bych mírně upravil, aby se měnila doména všem stránkám:
RewriteEngine On

RewriteCond %{HTTP_HOST} =pink.nazory.cz
RewriteRule ^index\.php|(.*)$ http://www.pink.nazory.cz/$1 [R=301,L]

Chyba 500 se ještě může vyskytnout při konfliktu s nějakými současnými pravidly - toto dej na začátek.
pink
Profil *
Teď se mi už web zobrazuje.
Jenže když zadám do adresového řádku http://www.pink.nazory.cz/index.php tak by mě to mělo přesměrovat na adresu http://www.pink.nazory.cz a to se neděje..
Kajman_
Profil *
Co si na začátek index.php dát něco takového?
//nechci index.php jen /
if (stristr($_SERVER["REQUEST_URI"],'index.php') && (empty($_POST)))
{
    header('HTTP/1.1 301 Moved Permanently');
    header("Location: http://".$_SERVER["HTTP_HOST"].str_replace('index.php','',$_SERVER['REQUEST_URI']));
    exit;
}
pink
Profil *
jo funguje to, jak požaduju. Chtěl jsem to udělat přes mod rewrite, ale tohle je také řešení. Hlavně že se zbavím duplicity stránek. Tohle je univerzální řešení, neboť po zadání adresy http://www.pink.nazory.cz/index.php/?page=video mě to přesměruje na http://www.pink.nazory.cz/?page=video. Takže super. Díky
pink
Profil *
Ještě jsem si zkoušel hrát z htaccess, abych měl přehlednout adresu. Přesněji abych místo adresy http://www.pink.nazory.cz/?page=video měl adresu http://www.pink.nazory.cz/video

Zkusil jsemtenhle kod, ale nějak mi nefunguje. Mohl bych Vás ještě požádat, koukněte mi na tento zápis, co mám špatně. Díky


RewriteBase /adresar
RewriteCond %{QUERY_STRING} ^page=([^&]+)$
RewriteRule ^index\.php$ %1.html? [R=301,L]
RewriteRule ^([^/]+)\.html index.php?rw=1&page=$1 [L,QSA]
mattyZEM
Profil
RewriteBase /adresar/
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]


Odkaz http://www.pink.nazory.cz/cokoliv odpovídá http://www.pink.nazory.cz/?page=cokoliv
izoo
Profil *
Když přídám do htaccess


writeBase /adresar/
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]


Háže mi to opět chybu 500..
Kajman_
Profil *
mattyZEM, izoo:
Nejspíš se to cyklí.

pink:
Možná by to šlo upravit podobně

RewriteEngine On
RewriteBase /adresar
RewriteCond %{QUERY_STRING} ^page=([^&]+)$
RewriteRule ^index\.php$ %1? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)$ index.php?rw=1&page=$1 [L,QSA]

Ale je lepší, když se v html odkazuje rovnou na /video a index.php by měl umět vracet korektní kód 404 u stránek, které nezná.
pink
Profil *
Zkusil jsem kod od Kajman
RewriteEngine On
RewriteBase /adresar
RewriteCond %{QUERY_STRING} ^page=([^&]+)$
RewriteRule ^index\.php$ %1? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)$ index.php?rw=1&page=$1 [L,QSA]


žádná změna nenastala. Stále mi to negeneruje přijatelnější adresu dle zadání viz výše. Nemůže to být tak složité.. Jenže nevím..
Davex
Profil
Máš všechny soubory v adresáři /adresar? Pokud ne, tak musíš správně vyplnit:
RewriteBase /


Chceš víc věcí najednou, takže je potřeba více různých pravidel.
RewriteEngine On
RewriteBase /

# přesměrování na variantu s www a odstranění index.php
RewriteCond %{HTTP_HOST} =pink.nazory.cz
RewriteRule ^index.php|(.*)$ $1 [R=301,L]

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

# neexistujícím souborům podstrčit skript index.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)$ index.php?rw=1&page=$1 [L,QSA]
pink
Profil *
JJ, všem díky. Už jsem skoro vyřešil vše, co jsem požadoval. Poslední věc, chtěl bych ještě přesměrovat http://pink. nazory.cz na http://www.pink. nazory.cz
Davex
Profil
Měla by stačit drobná oprava:
# přesměrování na variantu s www a odstranění index.php
RewriteCond %{HTTP_HOST} =pink.nazory.cz
RewriteRule ^index\.php|(.*)$ http://www.pink.nazory.cz/$1 [R=301,L]

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0