Autor Zpráva
Beeluis
Profil
Řeším takový problém s hostingem. Mám v jednom adresáři několik stovek souborů a mému hostingu se to nelíbí, proto mě požádali, abych přesunul některé soubory do podadresářů. Doporučili mi to udělat pomocí vhodných rewrite pravidel v .htaccess , ale bohužel nevím jak na to, aby se zachovala funkčnost webu.
Pomohl by mi s tím někdo? Předem děkuji.
Pokud by to někoho zajímalo, tak jde o web img.fmseries.cz
juriad
Profil
OK, adresa obrázků je:
http://img.fmseries.cz/images/9971301397.png

Obvykle se to řeší pomocí prefixů — soubor "obrazek.png" bude v adresáři "o", protože to je první znak jeho názvu — pro náš příklad to bude:
http://img.fmseries.cz/images/9/9971301397.png

Pravidlo bude nejspíš vypadat následovně:
RewriteEngine on
RewriteRule ^images/(.)(.*) images/$1/$1$2
Zapamatuje si první znak názvu ($1) a zbytek názvu ($2) a pak z toho složí novou adresu tvořenou: "první znak"/"první znak" "zbytek názvu"
Beeluis
Profil
Obrázek http://img.fmseries.cz/images/9971301397.png jsem přesunul do podadresáře s názvem "9"

.htaccess ve složce images vypadá takto, ale bohužel to nefunguje
RewriteEngine On
RewriteRule ^images/(.)(.*) images/$1/$1$2



# cele domeny (aliasy)
RewriteCond %{REQUEST_URI} !^/domains/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$
RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d
RewriteRule (.*) /domains/%2/$1 [L]


# subdomeny (s nebo bez www na zacatku)
RewriteCond %{REQUEST_URI} !^/subdom/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$
RewriteCond %{DOCUMENT_ROOT}/subdom/%2 -d
RewriteRule (.*) /subdom/%2/$1 [L]
juriad
Profil
Do adresáře "9" není přístup: http://img.fmseries.cz/images/9/9971301397.png
Nová adresa musí také fungovat.
RockFire
Profil
.htacces dej do kořenové složky
Beeluis
Profil
A jaký přístup tam mám nastavit?
Chápeme se dobře, že potřebuju, aby se mi po zadání http://img.fmseries.cz/images/9971301397.png zobrazil obrázek ve podsložce http://img.fmseries.cz/images/9/9971301397.png
Beeluis
Profil
Nabízím menší finanční odměnu tomu, kdo mi s tím pomůže, děkuji.
Kajman
Profil
Asi se to cyklí, zkuste např. před pravidlo

RewriteRule ^images/(.)(.*)$ images/$1/$1$2 [L]

dáte ještě

RewriteRule ^images/./ - [L]
Beeluis
Profil
Bohužel také nefunguje.
Kajman
Profil
Takže máte .htaccess uložený v místě, kam směřuje img.fmseries.cz - tedy vedle adresáře images a v .htaccess je pouze
RewriteEngine On
RewriteRule ^images/./ - [L]
RewriteRule ^images/(.)(.*)$ images/$1/$1$2 [L]
a nenačte to obrázek v podsložce podle prvního písmena?

Nemáte tam další pravidla, se kterými to může kolidovat? Co je v error logu?
Beeluis
Profil
Ve složce images mám .htaccess, ve kterém je toto
RewriteEngine On
RewriteRule ^images/./ - [L]
RewriteRule ^images/(.)(.*)$ images/$1/$1$2 [L]
 
 
 
# cele domeny (aliasy)
RewriteCond %{REQUEST_URI} !^/domains/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$
RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d
RewriteRule (.*) /domains/%2/$1 [L]
 
 
# subdomeny (s nebo bez www na zacatku)
RewriteCond %{REQUEST_URI} !^/subdom/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$
RewriteCond %{DOCUMENT_ROOT}/subdom/%2 -d
RewriteRule (.*) /subdom/%2/$1 [L]

A ten obázek jsem přesunul do podsložky v images s názvem složky 6

Kde zjistím co je v error logu?
Kajman
Profil
Proč ho máte ve složce images, když tu máte psané, že ta pravidla patří do kořenové složky?

Pokud trváte na .htaccess umístněném v images, nepoužívejte v pravidlech images.

RewriteEngine On
RewriteRule ^./ - [L]
RewriteRule ^(.)(.*)$ $1/$1$2 [L]

Ostatní balast už je asi v poddoméně k ničemu a není potřeba.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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