Autor | Zpráva | ||
---|---|---|---|
Tomas9857 Profil * |
Dobrý deň,
chcel by som pomocou mod rewrite dosiahnuť to aby v prípade že zadám do prehliadača adresu www.example.com/home.html - načítal stránku home.php
www.example.com/home/view.html - načítal stránku home.php&mod=view
www.example.com/home/1/view.html - načítal stránku home.php&mod=view&id=1
to viem tak nejak spraviť pomocou RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^/]*)\.html$ /home.php?mod=$1 [L] RewriteRule ^([^/]*)/([^/]*)\.html$ /home.php?mod=$1&action=$2 [L] RewriteRule ^([^/]*)/([^/]*)/([^/]*)\.html$ /home.php?mod=$1&id=$2&action=$3 [L] Toto funguje, tak ako si predstavujem. Teraz to chcem ale nejako rozšíriť a súbor generovať dynamicky podľa adresáru, teda aby to fungovalo rovnako ak miesto home.html dám napr. article.html, alebo categories.html alebo anything.html (samozrejme pokiaľ ten súbor existuje). Skúšal som to viacerými spôsobami a nejak sa mi to nedarí, väčšinou mi to len rozhasí to pôvodné čo fungovalo. Nemáte niekto nejaký nápad ako na to? ďakujem. Asi by to mohlo byť takto? RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^/]*)\.html$ /$1.php [L] RewriteRule ^([^/]*)/([^/]*)\.html$ /$1.php?mod=$2 [L] RewriteRule ^([^/]*)/([^/]*)/([^/]*)\.html$ /$1.php?mod=$2&action=$3 [L] RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)\.html$ /$1.php?mod=$2&action=$3&id=$4 [L] |
||
Kajman Profil |
#2 · Zasláno: 13. 2. 2023, 12:14:19
Asi ano. Jen ty podmínky RewriteCond patří jen k prvnímu následujícímu RewriteRule. Ale pokud tam nemáte skutečné .html soubory, co mají mít přednost, tak to ničemu nevadí.
|
||
Tomas9857 Profil * |
#3 · Zasláno: 13. 2. 2023, 12:33:36
No tak reálne html súbory tam nie sú a nebudú, podľa prvých testov sa to chová tak ako si predstavujem, tak snáď to bude ok :)
ďakujem. |
||
Tomas9857 Profil * |
#4 · Zasláno: 14. 2. 2023, 09:48:55
Doplňková otázka..
Toto čo som vymyslel funguje pokiaľ je to v roote, tj. ak veci riešim napr. na www.example.com . Čo ak by som toto celé chcel vložiť do podadresára? napr. www.example.com/test/
|
||
Kajman Profil |
#5 · Zasláno: 14. 2. 2023, 10:05:38
Když do složky test vložíte i .htaccess s uvedeným obsahem, tak to nefunguje?
Pomůže odstranění lomítka před $1? Pomůže deklarace RewriteBase /test/ |
||
Tomas9857 Profil * |
#6 · Zasláno: 15. 2. 2023, 08:45:31
Kajman:
Díky RewriteBase pomohlo |
||
Časová prodleva: 2 měsíce
|
0