Üdv!
Kezdem feladni ezt az egészet...
Leírom mit szeretnék.
index.php?oldal=$1&lang=$2
viszont van mikor ugye nincs lang, csak oldal, és természetesen kezdőlapként oldal sincs.
Eddig erre jutottam ami nem megy. (bár az apache.org docs szerint mennie kellene)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/(.*)/?$ index.php?oldal=$1&lang=$2
RewriteRule ^(.*)/?$ index.php?oldal=$1
Az oldal egyelőre localhoston van, viszont külön virtualhoston, hogy ez ne zavarjon bele.
pch
- 2948 megtekintés
Hozzászólások
Kötelező, hogy GET paraméterből jöjjön az infó? PHP-ból simán megkapod a $_SERVER['REQUEST_URI']-t és azt úgy dolgozod fel, ahogy akarod. Akár egy prepend fájlban is.
Egyébként ennek így ilyen formában működnie kellene, de ha bekapcsolod a rewrite logot, akkor látni fogod, hogy milyen köröket fut a cucc. Annak ismeretében sokkal könnyebb kideríteni, hogy mi történik. Én pl. arra tippelnék, hogy az első RewriteRule után még lazán ráfut a másodikra is.
- A hozzászóláshoz be kell jelentkezni
Másodikra simán ráfuthat. Ajánlok a végére egy [L]-t.
Ez viszont "^(.*)/(.*)/?$" erre is match-el ami nem túl jó:
# echo "valami/valami/valami/valami/valami" | grep -E "^(.*)/(.*)/?$"
valami/valami/valami/valami/valami
Ami sokkal szebb lenne sztem az "^/[^/]+/[^/]+/?$":
# echo "valami/valami/valami/valami/valami" | grep -E "^/[^/]+/[^/]+/?$"
# echo "/valami/valami/" | grep -E "^/[^/]+/[^/]+/?$"
/valami/valami/
Egyébként meg 404 azt kész.
- A hozzászóláshoz be kell jelentkezni
^([a-z]+)(?:/(hu|ru|en|de)?)$ .......oldal=$2&lang=$2
t
- A hozzászóláshoz be kell jelentkezni
?
Ezt nem értem első része ugye a-z ig szűr a / után meg egyértelmű. de ez az oldal=$2&lang=$2?
pch
--
http://www.buster.hu "A" számlázó
--
- A hozzászóláshoz be kell jelentkezni
az oldal nyilvan $1, bocsi.
t
- A hozzászóláshoz be kell jelentkezni
Ha kiveszem a
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
akkor jó lesz változó értéke, viszont se a css se a js nem töltődik be.
Más ötletek?
pch
--
http://www.buster.hu "A" számlázó
--
- A hozzászóláshoz be kell jelentkezni
RewriteLog "/tmp/rewrite.log"
RewriteLogLevel 4
És ez után mindjárt DIY lesz a feladat.
Jah és az error.log-ot is azért érdemes nézegetni...
- A hozzászóláshoz be kell jelentkezni
Imhol a megoldás:
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-zA-z]+)/([hu|ru|de|pl|en|fr]+)$ index.php?oldal=$1&lang=$2 [L]
RewriteRule ^([a-zA-z]+)$ index.php?oldal=$1 [L]
thx!
pch
--
http://www.buster.hu "A" számlázó
--
- A hozzászóláshoz be kell jelentkezni
ennel az en egysorosom kicsit elegansabb. vagy minel bonyolultabban kell?
t
- A hozzászóláshoz be kell jelentkezni
A kerdojeles kifejezest az apache regex motorja kepes ertelmezni?
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
kulonben irtam volna?
t
- A hozzászóláshoz be kell jelentkezni
Hát nekem az nemment. Hidd el már mindenkinek a leírását kipróbáltam akit felleltem a neten. Végül már nem is érdekelt, hogy mi van a regexpbe, csak copy-paste másoltam..
pch
--
http://www.buster.hu "A" számlázó
--
- A hozzászóláshoz be kell jelentkezni