Autor Zpráva
Cody
Profil
Mám problém s nastavní přesměrování v .htaccess. Předně jsem v tomto naprostý začátečník a většinou jsem to řešil tak, že jsme to dokoukal a pok použil. Bohužel tentokrát jsme nepřišel na to jak přesměrovat neexistující stránky na nové.

Potřebuji toto:
Přesměrovat tyro stránky přes 301 na nové
www.domena.cz/?page=DH/index.php na hlavní stránku www.domena.cz/
www.domena.cz/?page=DH/detail.php na www.domena.cz/tkanove-soli

Zároveň mám na webu nainstalované CMS CMS Made Simple a to má v .htaccess nějaké zápisy pro hezké URL, který tam musí zůstat. Měl jsem v .htaccess tento zápis (přesměrování nefungovalo)

RewriteEngine on
RewriteBase /

RewriteRule \?page=DH/index\.php index.php [R=301]
RewriteRule \?page=DH/detail\.php tkanove-soli [R=301]

RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_METHOD} !POST$
RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]

Poté co jsem nenašel odpověď na stránce nápovědy Wedosu mi "odborník" ze zákaznické podpory upravil .htaccess takto (po této úpravě přesměrování taky nefungovalo a navíc přestaly fungovat přesměrované hezké URL v rámci CMS):

#Options +FollowSymLinks
RewriteEngine on
RewriteBase /

###Pridano WEDOS
#Jen obycejne presmerovani
RewriteRule pokus\.php /tkanove-soli/ [R=301,L]

#To co jste pozadoval
#RewriteCond %{QUERY_STRING} ^([^=]+)=([^&]+)
#RewriteRule ^$ /kamsmerovat/%1/%2
RewriteCond %{QUERY_STRING} DH/detail.php
RewriteRule ^$ /tkanove-soli/ [L]

RewriteCond %{QUERY_STRING} DH/index.php
RewriteRule ^$  http://www.duhovahvezda.cz/?  [R=301,L]
# Priklad na slovo WEDOS
RewriteCond %{QUERY_STRING} DH/wedos.php
RewriteRule ^$  http://www.wedos.cz/?  [R=301,L]
### Konec testu WEDOS

## Nasledujici jsou zakomentovane WEDOS. Odstrante #
#RewriteCond %{REQUEST_URI} !/$
#RewriteCond %{REQUEST_URI} !\.
#RewriteCond %{REQUEST_METHOD} !POST$
#RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]
 
## Rewrites urls in the form of /parent/child/
## but only rewrites if the requested URL is not a file or directory
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule ^(.+)$ index.php?page=$1 [QSA]
## Konec zakomentovanych radku WEDOS. Odstrante #

Proto jsme odstranil jeho komentáře, aby alespoň web fungoval. Ale stále nevím jak udělat to přesměrování. .htaccess aktuálně vypadá takto.

#Options +FollowSymLinks
RewriteEngine on
RewriteBase /

###Pridano WEDOS
#Jen obycejne presmerovani
RewriteRule pokus\.php /tkanove-soli/ [R=301,L]

#To co jste pozadoval
#RewriteCond %{QUERY_STRING} ^([^=]+)=([^&]+)
#RewriteRule ^$ /kamsmerovat/%1/%2
RewriteCond %{QUERY_STRING} DH/detail.php
RewriteRule ^$ /tkanove-soli/ [L]

RewriteCond %{QUERY_STRING} DH/index.php
RewriteRule ^$  http://www.duhovahvezda.cz/?  [R=301,L]
# Priklad na slovo WEDOS
RewriteCond %{QUERY_STRING} DH/wedos.php
RewriteRule ^$  http://www.wedos.cz/?  [R=301,L]
### Konec testu WEDOS

## Nasledujici jsou zakomentovane WEDOS. Odstrante #
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_METHOD} !POST$
RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]
 
## Rewrites urls in the form of /parent/child/
## but only rewrites if the requested URL is not a file or directory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
## Konec zakomentovanych radku WEDOS. Odstrante #

Dokážete mi prosím poradit, jak nastavit správně přesměrování?
Kajman
Profil
Zkuste na začátek pravidel toto
RewriteBase /

RewriteCond %{QUERY_STRING} page=DH/detail\.php
RewriteCond %{ENV:REDIRECT_STATUS} =""
RewriteRule ^(index\.php)?$ tkanove-soli/? [L,R]

RewriteCond %{QUERY_STRING} page=DH/index\.php
RewriteCond %{ENV:REDIRECT_STATUS} =""
RewriteRule ^(index\.php)?$ /? [L,R]
Cody
Profil
Díky už funguje přesměrování z www.duhovahvezda.cz/?page=DH/index.php na wwwduhovahvezda.cz, ale stále www.duhovahvezda.cz/DH/detail.php na http://www.duhovahvezda.cz/tkanove-soli/ nefunguje - klasická 404.
Kajman
Profil
To bude tím, že jste v první příspěvku žádal o přesměrování z
www.domena.cz/?page=DH/detail.php

Pro novou zmíněnou adresu bez otazníku to bude jednoduché...
RewriteRule ^DH/detail\.php$ tkanove-soli/ [L,R]
Cody
Profil
Kajman:
Pravda, moje chyba! Nyní už to funguje skvěle, díky!

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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