Autor Zpráva
Pavel Straka
Profil
Dobré odpoledne, rád bych poprosil o radu, mám tento kód:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !^/inzerat/ 
RewriteCond %{REQUEST_URI} !^inzerat/
RewriteRule ^([^/]+)/?$ inzeraty.php?kat=$1
    
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !^/inzerat/ 
RewriteCond %{REQUEST_URI} !^inzerat/
RewriteRule ^([^/]+)/([^/]+)?/?$ inzeraty.php?kat=$1&podkat=$2

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/inzerat/  
RewriteCond %{REQUEST_URI} ^inzerat/
RewriteRule ^inzerat/([^/]+)/?$ inzerat.php?id=$1


RewriteRule ^(.*/)?index.html$ /$1 [R=301,L]
RewriteRule ^(.*/)?index.htm$ /$1 [R=301,L]
RewriteRule ^(.*/)?index.php$ /$1 [R=301,L]
RewriteRule ^(.*/)?default.asp$ /$1 [R=301,L]  
RewriteRule ^(.*/)?default.aspx$ /$1 [R=301,L]

pro přesměrování na stránku inzerat.php, pokud je v adrese řetězec "inzerat" a na stránku inzeraty.php, pokud tam řetězec "inzerat" není.
Na Gigaserveru funguje bez obtíží, dnes jsem ale web přesunul na Wedos, kde není uložen v kořenovém adresáři (www), ale jako alias a to si myslím, že je jádro problému. Htaccess takto funguje jen zčásti, vždy mě přesměruje na inzeraty.php, na inzerat.php ale ne.

Mohl by mi prosím někdo poradit, jak htaccess upravit pro tento případ? Na tech. podpoře Wedosu nebyli 2x ochotní a odkázali mě na tento odkaz
http://kb.wedos.com/webhosting/subdomeny.html

Děkuji všem za ochotu.
Kajman
Profil
RewriteCond %{REQUEST_URI} ^/inzerat/  
RewriteCond %{REQUEST_URI} ^inzerat/

Tyhle podmínky nikdy nemohou vyhovět zároveň. Proto se pravidlo z řádku 20 nikdy neaplikuje. Nezapomněl jste přidat flag [OR] na konec řádku 18? Případně to můžete zapsat jako jednu podmínku

RewriteCond %{REQUEST_URI} ^/?inzerat/
Pavel Straka
Profil
Děkuji za pomoc, ale bohužel ani toto nepomohlo.
Nahradil jsem ty 2 řádky jedním dle Vašeho vzoru.


Jak se do té funkčnosti může promítnout to, že web není uložen v kořenovém adresáři, ale v podsložce?
Kajman
Profil
Ona ta podmínka (že to začíná na inzerat) je v RewriteRule, takže zmíněné RewriteCond zkuste úplně vynechat.

Případně zkuste upravit RewriteBase na tu podsložku místo kořenu.
Pavel Straka
Profil
Nahradil jsem ty 2 řádky ohledně inzeratu tímto:
RewriteRule ^inzerat/([^/]+)/?$ inzerat.php?id=$1 [L]
a už to funguje, nerozumím tomu, proč to předtím nefungovalo.

Děkuji za pomoc.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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