Autor Zpráva
Bhu
Profil
Ahoj, na svejch stránkách mám .htaccess s timhle zdrojem:

Options +FollowSymlinks

RewriteEngine On 
RewriteBase / 

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 

RewriteRule ^.* - [L] 

#RewriteRule ^(.*)$ $1.html [QSA,L] 
RewriteRule ^([^.]+)$ $1.html [QSA,L]
#RewriteRule ^(.*)$ $1.php [QSA,L] 
RewriteRule ^([^.]+)$ $1.php [QSA,L]


A opravdu mám url http://stranka.cz/stranka místo http://stranka.cz/stranka.html, ale když jsem teď chtěl zkonvertovat do PHP, tak mi to po klepnutí na odkaz a href="stranka" vyhodilo 404 a stránka se zobrazila jenom když jsem ručně připsal příponu .php. Zkoušel jsem dát pryč řádky

#RewriteRule ^(.*)$ $1.html [QSA,L] 
RewriteRule ^([^.]+)$ $1.html [QSA,L]


ale nefunguje to. Nevíte, kde je problém? díky
Nox
Profil
Nekopírovat bezhlavě
L v příznacích znamená Last, tzn. pokud vyhovuje, další se nevyhodnocují
#RewriteRule ^(.*)$ $1.html [QSA,L] 
RewriteRule ^([^.]+)$ $1.html [QSA,L] <- vyhodnotí se a zde to skončí, k .php se to už nedostane
#RewriteRule ^(.*)$ $1.php [QSA,L] 
RewriteRule ^([^.]+)$ $1.php [QSA,L]


Navíc je to trochu nesmysl tam mít 2 pravidla se stejným požadovaným formátem ( ^([^.]+)$ )...když zadáš /kontakt, tak nevíš, jestli soubor je kontakt.html nebo kontakt.php (a i kdyby
tak můžou existovat oba)...Takže prostě tam nech jen
RewriteRule ^([^.]+)$ $1.php [QSA,L]
Bhu
Profil
Díky, ale pořád to nejde. Teď mám zdroj tedy takhle

Options +FollowSymlinks

RewriteEngine On 
RewriteBase / 

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 

RewriteRule ^([^.]+)$ $1.php [QSA,L]


...a stále to hází chybu
Bhu
Profil
Tak jsem odebral řádky

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d

a funguje to... zvláštní.

Můžu se tedy zeptat, co tyayhle řádky dělají? zkoušel sem googlovat, ale tam to neni dost polopaticky, tak kdyby mi to tu někdo objasnil..dík
SwimX
Profil
Bhu
http://mike.treba.cz/mod_rewrite-a-hezke-url/
znamená, že přepíše pouze pokud ten daný soubor (-f) složka (-d) (ne)existuje
Bhu
Profil
ok, díky

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0