Sziasztok.
Meg kellene oldanom a következőt:
Adott egy mappa, ezen belül fájlok, meg egy index.py
Namármost. Ha az adott file nem létezik, akkor dobjon engem át a index.py-hoz méghozzá úgy, hogy csak az utolsó perjel UTÁNI részt illeszti hozzá az "index.py/" címhez. Azaz valami hasonló kellene mint amit a drupal csinál, csak ugye asszem úgy van, hogy ez a PHP-nál automatikus, a python-nál nem.
A Pythonnál van még egy olyan is, hogy kiterjesztés nélkül is megtalálja a fájlt, szeretném ezt a funkciót is megőrizni ha lehet.
Kérdésem egyrészt az, hogy hogyan lehet ezt megoldani, másrészt az, hogy meg lehet-e úgy oldani, hogy a szabályokban nem történik említés a site valódi helyét illetően.
Miért: a site jelenleg egy fejlesztői helyen van, és szeretném 1:1 mozgatni a célhelyre, újrabeállítás nélkül.
Ja, és ha valaki tud magyar nyelvű mod_rewrite doksit, akkor dobjon egy RTFM linket, lécci. Tudom, tanuljak meg angolul. Igyekszem. De mégis.
Előre is kösz
- 751 megtekintés
Hozzászólások
gondolom nem mod_python-t hasznalsz,
mert a mod_python eseteben mindig
az index.py fut le, vagyis amit a httpd.conf-ban
beallitottal
a httpd.conf idevago resze:
<Directory /usr/local/www/framework>
AddHandler mod_python .py
PythonHandler index
PythonDebug On
PythonPath "sys.path + ['/usr/local/www/framework']"
</Directory>
pl:
1. http://framework.localhost
2. http://framework.localhost/index.py
3. http://framework.localhost/geza.py - ilyen file nincs az adott konyvtarban
mindegyik url eseteben az index.py fut le
/* bocs az esetleges helyesirasi hidakert */
- A hozzászóláshoz be kell jelentkezni
De, mod_python-t használok. A következő a konkrét bajság:
A UserDir-en belül van ott nincs konfig.
A /etc/apache/modules.d/16mod_python.conf ilyes kinézetű:
<IfDefine PYTHON>
<IfModule !mod_python.c>
LoadModule python_module modules/mod_python.so
</IfModule>
</IfDefine>
<IfModule mod_python.c>
<Files ~ "\.py$">
SetHandler mod_python
PythonHandler mod_python.publisher
PythonDebug On
</Files>
<Files ~ "\.psp[_]?$">
SetHandler mod_python
PythonHandler mod_python.psp
PythonDebug On
</Files>
AddDirectoryIndex index.py
</IfModule>
Ezen felül gyak. semmi konfigom nincs, tekintve hogy a dolog a UserDir-en belül (http://serverke.mittu.domain.hu/~user/mappa) fut.
Ergo az szeretném, ha a http://serverke.mittu.domain.hu/~user/mappa/test URL-re a http://serverke.mittu.domain.hu/~user/mappa/index.py/test hívódna meg.
Nekem a mod_python nem csinálja meg. Ezek szerint akkor próbáljam azt amit a vhost konfigjába írtál berakni a .htaccess-ba?
Bocs, de az Apache oldalát annyira még nem ismerem a dolgonak...
Ja, amit elfelejtettem írni: jó lenne, ha ez valahogy mappán belül futna, mert nem biztos, hogy a leendő tárhelyszolgáltatónál én írhatom a vhostom konfigját.
- A hozzászóláshoz be kell jelentkezni
bocs, ugy nez ki felreertettelek
a
http://serverke.mittu.domain.hu/~user/mappa/test
formara nekem sem az index.py fut le, kapok egy 404-et
viszont a
http://serverke.mittu.domain.hu/~user/mappa/test.py-vel
az index.py a befuto
az nem lenne megfelelo ha a test ele egy ?-et irnal?
http://serverke.mittu.domain.hu/~user/mappa/?test
eljatszadozok a mod_rewrite-val, ha valamire jutottam
akkor szolok
/* bocs az esetleges helyesirasi hidakert */
- A hozzászóláshoz be kell jelentkezni
Van ? is, arra az index.py index(req) metódusa fut le.
Azért kellene ez a / jeles dolog, mert az index.py/test kérésre a test(req) függvény fut le, és ez lenne egyes oldalakál a formok POST handlere.
Pont ezért kellene csak az utolsó / jel utáni rész, mert ekkor a
http://serverke.mittu.domain.hu/~user/mappa/test?action=do kérésre valójában a
http://serverke.mittu.domain.hu/~user/mappa/index.py/test?action=do szolgálódna ki.
Ebből látszik még egy dolog: a query string is kell.
- A hozzászóláshoz be kell jelentkezni
Ugye van már valami ötlet? :-)
- A hozzászóláshoz be kell jelentkezni
:Persze
Nalam mindenfelekeppen az index.py-ben levo handler fuggveny fut le
miert?
te Handler-kent a mod_python.publisher-t hasznalod
en meg az index.py-ben definialt handler fuggvenyt hasznalom
es az atadott parameterek alapjan hivogatom a tovabbi
osztalyokat/fuggvenyeket
egyebkent, ahogy te is irtad a mod_rewrite vonalon kellene
elindulni ;)
/* bocs az esetleges helyesirasi hidakert */
- A hozzászóláshoz be kell jelentkezni
hali
nalam ez tokeletesen mukodik:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.py/$1 [QSA]
/* bocs az esetleges helyesirasi hidakert */
- A hozzászóláshoz be kell jelentkezni
Igen, csak nem akarok egyrészt mindent egy függvényen keresztül nyomni, mert arra ott lenne amúgy is a index(), hanem külön meghívést akarok.
A szabályt kipróbálom.
Szerk.: Éééés igeeeen! Sikerült. A szabályokhoz a RewriteBase-t be kellett állítani, de nem volt a siker feltétele a dinamikus átírás.
Very, Very THX.
- A hozzászóláshoz be kell jelentkezni