| 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: 12 let
|
|||
0