Autor Zpráva
Petr-K
Profil *
Ahoj,

chtěl bych poprosit o malou pomoc s .htaccess, kde mám kolizi ve stejném názvu souboru (.php) a složky.

Ve struktuře stránek je složka portfolio a soubor portfolio.php. Pokud zadám url domena.com/portfolio tak mi vyskočí chyba 403. Zkoušel jsem to dle nějakých návodů upravovat (viz. vykomentovaná část kódu), ale pak se mi načte pouze soubor portfolio.php (bez indexu - takže mi chybí základní HTML struktura a všechny styly apod.)

Jak se toto řeší?
Děkuji
P.

.htaccess:

RewriteEngine on
RewriteBase /    

#RewriteCond %{DOCUMENT_ROOT}/$1.php -f
#RewriteRule ^(.+?)/?$ /$1.php [L]    

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_URI} !^/sitemap.xml$

RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

DirectorySlash Off
Davex
Profil
Petr-K:
Pokud je to případ jen jednoho konkrétního adresáře, tak stačí přidat podmínku na začátek.

RewriteEngine On
RewriteBase /    

RewriteCond %{REQUEST_URI} ^/portfolio$ [OR]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/sitemap.xml$
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

DirectorySlash Off
Petr-K
Profil *
Davex: Perfektní! Děkuji moc, funguje to! A jaké by bylo řešení pro více shod?
Davex
Profil
Petr-K:
A jaké by bylo řešení pro více shod?
1) Upravit regulární výraz v podmínce, aby zachytil ostatní adresáře podle jména.
2) Vymazat první dvě podmínky, aby se přepis aplikoval u všech adresářů na webu.
Ales55
Profil *
Dobrý den,
mám na serveru soubor /test.php, a když zadam do prohližeče /test/, chci aby se načetl právě soubor /test.php, víte jak to udělat?
Keeehi
Profil
Hmmm víme, ale založ si na to vlastní vlákno.
Jinak je to naprosto triviální. O mod_rewrite jsi slyšel? Pokud ne, tak si o tom něco najdi a nastuduj. Je klidně dost možné, že základní ukázka v úvodní kapitole bude řešit něco trochu složitějšího, protože toto je opravdu jednoduché. Takže bys to měl určitě zvládnout.
Ales55
Profil *
Keeehi:
jen skoda ze se vsude pise jakmile napises "blbost" dostanes za usi. Npasal jsem slusnou zadost a misto odpovedi me nekdo vypere ze je to tak trivialni ze to neni potreba sem psat ... super forum :)


a toto mi nefunguje ...

#RewriteCond %{REQUEST_FILENAME}.php -f
#RewriteRule ^([^.]+)$ /$1 [L]
Keeehi
Profil
Ales55:
a toto mi nefunguje ...
To protože tam nepřidáváš tu příponu.
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^.]+)$ /$1.php [L]
Ales55
Profil *
ani to nefunguje ...
juriad
Profil
Ales55:
Nesmíš na začátku řádky mít #, to je totiž komentář.
Ales55
Profil *
jo jasne .. ale zas takovej kokos nejsem ...


bez lomitka to funguje: www.aaa.cz/test
ale s lomitkem to nefunguje www.aaa.cz/test/
Kajman
Profil
RewriteRule ^([^./]+)/?$ /$1.php [L]
Ales55
Profil *
bingo ... diky to Kajman...

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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