Autor | Zpráva | ||
---|---|---|---|
worda Profil * |
#1 · Zasláno: 17. 9. 2013, 16:51:07
Dobrý den,
zkusil jsem nakonfigurovat .htaccess soubor, tak aby převáděl odkazy takto: /prihlaseni.php ->/prihlaseni /info/oNas.php ->/info/oNas /detail.php?kod=K19G7D6 ->/produkt/K19G7D6 .htaccess: RewriteEngine On RewriteBase / ErrorDocument 404 /404.php RewriteCond %{REQUEST_FILENAME} -d [OR] RewriteCond %{REQUEST_FILENAME} -f RewriteRule .* - [L] RewriteRule ^produkt/([_a-zA-Z0-9\-]+)/?$ detail.php?kod=$1 [L,QSA] RewriteRule ^info/([_a-zA-Z0-9\-]+)/?$ info/$1.php [L,QSA] RewriteRule ^([_a-zA-Z0-9\-]+)/?$ $1.php [L,QSA] Poslední 2 pravidla se zdají být funkční ovšem to první nikoliv, s .htacces nemám takové zkušenosti a tak je pro mě složité identifikovat chybu, můžete mi někdo poradit s řešením? Děkuji |
||
Davex Profil |
#2 · Zasláno: 17. 9. 2013, 19:42:10
Zdá se, že to funguje jak má. Nefunkčnost se projevuje jak?
|
||
worda Profil * |
#3 · Zasláno: 17. 9. 2013, 20:38:54
Po zadání zadání stránky například:
http://www.mujweb.cz/produkt/K19G7D6 to vychodí 404 chybu: Not Found The requested URL /subdom/www/produkt/K19G7D6 was not found on this server. Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request. |
||
Davex Profil |
#4 · Zasláno: 17. 9. 2013, 21:23:33
Kde se tam objevilo to
/subdom/www/ ? Nejsou tam nějaká další pravidla se kterými by to mohlo kolidovat?
|
||
worda Profil * |
#5 · Zasláno: 17. 9. 2013, 21:34:40
To to nejspíše umístění stránek na hostingu. Jiná htaccess pravidla tam nejsou, jen tento jeden soubor. Zkoušel jsem změnit i RewriteBase na /subdom/www/ ovšem to také nepomohlo.
|
||
Davex Profil |
#6 · Zasláno: 18. 9. 2013, 00:13:39
V pravidlech problém nevidím a tato kombinace by měla fungovat na 99 % webserverů s Apache.
Ve skutečnosti nemusí fungovat ani pravidla 2 a 3, ale stránky načtou jiným způsobem pomocí mod_negotiation. Zkus si to vypnout volbou Options -MultiViews a možná se přestanou načítat i stránky na adresách obsluhovaných pravidly 2 a 3.
|
||
worda Profil * |
#7 · Zasláno: 18. 9. 2013, 13:49:09
Tak se omlouvám, ono to není umístěný přímo v rootu, je to hosting wedosu, takže struktura je:
/www/subdom/www/ a v /www/ je soubor .htaccess, který obsahue následující: RewriteEngine On # cele domeny (aliasy) RewriteCond %{REQUEST_URI} !^domains/ RewriteCond %{REQUEST_URI} !^/domains/ RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$ RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d RewriteRule (.*) domains/%2/$1 [DPI] # subdomeny (s nebo bez www na zacatku) RewriteCond %{REQUEST_URI} !^subdom/ RewriteCond %{REQUEST_URI} !^/subdom/ RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$ RewriteCond %{DOCUMENT_ROOT}/subdom/%2 -d # aliasy - spravne presmerovani pri chybejicim / RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^domains/[^/]+/(.+[^/])$ /$1/ [R] # subdomeny - spravne presmerovani pri chybejicim / RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^subdom/[^/]+/(.+[^/])$ /$1/ [R] Takže má ty pravidla vložit do tohohle souboru? ale v jakém tvaru? |
||
Davex Profil |
#8 · Zasláno: 18. 9. 2013, 18:47:59
Soubor
/www/.htaccess by měl zůstat tak jak je a pravidla pro přepis adres z [#1] by se asi měla dát do souboru /www/subdom/www/.htaccess .
|
||
Kajman Profil |
#9 · Zasláno: 18. 9. 2013, 20:18:15
worda:
Přijde mi, že za řádkem 14 chybí rewriterule. |
||
worda Profil * |
#10 · Zasláno: 19. 9. 2013, 00:26:54
Přihlásím se na ftp, a mám tam www, session a tmp složky. Pokud vlezu do www, tak tam je ten soubor .htacces o kterém jsem psal v předchožím příspěvku a pak je podsložku subdom a další podsložku www a tam je umístěn obsah stránek.
Davex Pokud Tě chápu dobře, tak to tak bylo původně a nefungovalo to (resp mi to furt házelo 404). |
||
polonium Profil |
#11 · Zasláno: 19. 9. 2013, 08:38:13
A skousel jsi nastavit RewriteBase na /subdom/www nebo ho zakomentovat?
|
||
worda Profil * |
#12 · Zasláno: 19. 9. 2013, 14:20:46 · Upravil/a: worda
Kajman:
„Přijde mi, že za řádkem 14 chybí rewriterule.“ Máš pravdu, nevím jak to mohlo vypadnout, kopíroval jsem celý ten soubor /www/.htaccess opravené: RewriteEngine On RewriteCond %{REQUEST_URI} !^domains/ RewriteCond %{REQUEST_URI} !^/domains/ RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$ RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d RewriteRule (.*) domains/%2/$1 [DPI] RewriteCond %{REQUEST_URI} !^subdom/ RewriteCond %{REQUEST_URI} !^/subdom/ RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$ RewriteCond %{DOCUMENT_ROOT}/subdom/%2 -d RewriteRule (.*) subdom/%2/$1 [DPI] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^domains/[^/]+/(.+[^/])$ /$1/ [R] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^subdom/[^/]+/(.+[^/])$ /$1/ [R] Web je umístěn ve složce /www/subdom/www ->tam jsem umístil svůj .htaccess: RewriteEngine On ErrorDocument 404 /404.php RewriteCond %{REQUEST_FILENAME} -d [OR] RewriteCond %{REQUEST_FILENAME} -f RewriteRule .* - [L] RewriteRule ^produkt/([_a-zA-Z0-9\-]+)/?$ detail.php?kod=$1 [L,QSA] RewriteRule ^info/([_a-zA-Z0-9\-]+)/?$ info/$1.php [L,QSA] RewriteRule ^([_a-zA-Z0-9\-]+)/?$ $1.php [L,QSA] a stále stjený problém, už jsem z toho zoufalý :-(. Nejspíše to již funguje, problém byl v tom, že to nebralo v adrese parametr, který obsahoval více slov a nebyl nijak spojen (např pomlčkou). Díky |
||
Kajman Profil |
Ale
/produkt/K19G7D6 neobsahuje více slov, je divné, že to nefungovalo.
|
||
Časová prodleva: 11 let
|
0