Rövid URL-t nem a htaccess oldja fel, hanem automatikusan kiterjesztést kap
Sziasztok!
$SUBJECT témában kérnék segítséget. Apache-ban a rewrite modul engedélyezve van, a document root-ban pedig ott van az alábbi .htaccess:A htaccess értelmezése megtörténik, mert ha elrontom, akkor sír érte az Apache. A feloldást mégsem ő végzi, mert ha a szabály jobb oldalán hülyeséget írok, akkor sem történik semmi; mindig automatikusan a document root-ban lévő, azonos nevű de .php kiterjesztésű állomány fut le, de GET-ben semmi paraméter nem jön.
A document root-hoz tartozó virtual host beállítás az alábbi:Minden segítséget, linket és keresőszót köszönök!
Üdv:
Dávid
■ $SUBJECT témában kérnék segítséget. Apache-ban a rewrite modul engedélyezve van, a document root-ban pedig ott van az alábbi .htaccess:
RewriteEngine On
RewriteRule ^(\w+)/([0-9]+)$ /site/$1.php?id=$2
A document root-hoz tartozó virtual host beállítás az alábbi:
Options Includes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
Üdv:
Dávid
^
ez a szabály arra illeszkedik pl, hogy kutya/23
de az url-ben lényegesen több dolog van: http://atedomained/ittislehetmegsokminden/kutya/23
mivel a szabály elején ott van a ^ emiatt nem is illeszkedik. azt le kéne szedni az elejéről.
szerk:
hülyeséget írtam, bár nem teljesen :) nem az egész url-t kapja meg, viszont van egy / az elején, tehát ebben az esetben (http://atedomained/ittislehetmegsokminden/kutya/23) ezt: /ittislehetmegsokminden/kutya/23
Akkor a szabály így lenne jó: ^/(\w+)/([0-9]+)$
Nem hiányzik a végéről egy
rerite log
RewriteLogLevel 2 RewriteLog
RewriteLog /path/to/log/rewrite.log
Szerintem ennyi elég, ebben minden benne lesz.
Furcsán illeszkedő szabály
Köszi a tippeket! Apache 2-ről lévén szó, a / nem kell a szabályok elejére, az [L] azonban tényleg hiányzott a végéről, ezért odaírtam. A .htaccess most így néz ki:
Köszi előre és utólag is:
Dávid
itt egy kis példa, hogy
Vissza az elejére
Tovább teszteltem a .htaccess-t, és úgy tűnik, hogy a http://domain/bla/200/1 -et valóban a .htaccess dolgozza föl, méghozzá jól (szól az Apache, hogy nincsen bla.php), de ha bla helyett olyan megnevezés áll (pl. category vagy main), amilyen - .php kiterjesztéssel - létezik a document root-ban, akkor egyszerűen az kapja meg a vezérlést, és kész. Be lehet valahol állítani a httpd.conf-ban, hogy rewrite rule nélkül a http://domain/main esetén a main.php ne kapja meg automatikusan a vezérlést?
Köszi! Üdv:
Dávid
acceptpathinfo?
MultiViews
Hogyaza...
Üdv:
Dávid