Autor | Zpráva | ||
---|---|---|---|
Bhu Profil |
#1 · Zasláno: 7. 2. 2009, 22:59:26 · Upravil/a: Bhu
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 |
#2 · Zasláno: 8. 2. 2009, 10:01:55 · Upravil/a: Nox
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 |
#3 · Zasláno: 8. 2. 2009, 14:48:36
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 |
#4 · Zasláno: 8. 2. 2009, 16:52:55
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 |
#5 · Zasláno: 8. 2. 2009, 17:00:07
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 |
#6 · Zasláno: 8. 2. 2009, 17:05:59
ok, díky
|
||
Časová prodleva: 15 let
|
0