sziasztok!
van egy .htaccess fájlom az alábbi tartalommal:
IfModule mod_rewrite.c
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?m=$1 [QSA]
/IfModule
a cucc tökéletesen működik az alábbi formában pl:
http://valami.hu/forum
de szerenék +1 (vagy több) /valamit használni, pl:
http://valami.hu/forum/1
vagy
http://valami.hu/forum/allas/it/1245
hogy lehet ez utóbbit megoldani, mit kell még a htaccessbe beírni, mert bármit próbáltam, hibát írt ki?
van valakinek tapasztalapa?
előre is köszi!
- 4448 megtekintés
Hozzászólások
mit kell még a htaccessbe beírni
egy fájllal akarod több könytár jogait beállítani?
----------------------------------------------------------------
"A megoldas mindeki kerdesere egyszeru.
OLVASSATOK DOKUMENTACIOT!"
by thuglife
- A hozzászóláshoz be kell jelentkezni
igazából ezek nem könyvtárak, hanem változók
pl: a
http://valami.hu/ez/2/az/4
a valóságban:
http://valami.hu?mi1=ez&mi1_id=2&mi2=az&mi2_id=4
csak sajnos addig jutottam el, hogy:
http://valami.hu?mi1=ez
eddig kezelje, de nekem szükségem lenne több vátozóra is.
- A hozzászóláshoz be kell jelentkezni
Lehet, nem kell a http... rész, csak ami utána van.. Tipp:
RewriteCond %{REQUEST_URI} ^https?://[^/]+/[^]+/?$
RewriteRule ^(.*)$ index.php?m=$1 [QSA]
RewriteCond %{REQUEST_URI} ^https?://[^/]+(/[^]+)?{2}/?$
RewriteRule ^/([^/]+)/(.*)$ index.php?m=$1&n=$2 [QSA]
Nem próbáltam ki.
- A hozzászóláshoz be kell jelentkezni
megvan!
szokás szerint én voltam az állat...
az eredeti cucc tökéletesen működik. megpróbálom leírni.
van a statndard valami.hu/oldal
szóval, mikor lekérdem, h mi is lehet a változó, amit keresünk, akkor ez lesz:
oldal
mikor meg az url ez: valami.hu/oldal/25
akkor a változó a php-ban:
oldal/25
tehát csak fel kell bontanom / -ek szerint.
a hozzászólások jó gondolatébresztők voltak. már 3 napja ezzel szívtam, kicsit kétségbe voltam esve, h nemmegy, de végül is igen!!!
köszi fiúk a segítséget!
- A hozzászóláshoz be kell jelentkezni
Sziasztok!
Nem pont ehez a problémához tartozik a kérdésem, de nem akartam új témát nyitni.
A felállás a következő: van egy apache 2.2.3 szerver, ami php oldalakat szolgál ki. Az oldalon bőségesen vannak képek és média fájlok. Gondoltam arra, hogy felrakok egy lighttpd forrásból, és a documnet root -ját beállítom ugyan arra a könyvtárra, amire az apache is van. A portot megváltoztattam 80-ról 81 -re. Ez eddig jó is, a lighttpd szépen megy is. Viszont a statikus fájlokat a lighttpd-nek kellene kiszolgálnia. Pl. ha a www.eredetidomain.hu/images/kep001.jpg kérés jön, akkor az url_rewrittal rá kellene venni, hogy a www.eretdetidomain:81/images/kep00.jpg legyen.
Olvasgattam az url_rewrite oldalát, de nem igen találtam rá a megoldásra. Tudna valaki segíteni ebben?
Előre is köszönöm!
___________________________________________________________________
Lógnak a pálmafán a kókuszok .... :)
- A hozzászóláshoz be kell jelentkezni
Szerintem az apacsot használd proxynak a ligthyhoz (rengeteg leírás van a neten).
--
Gentoo motto: It's worth spending eight hours trying to make something load 20ns faster.
- A hozzászóláshoz be kell jelentkezni
Küldenél egy linket mert most nem igen találok használhatót.
Bezzeg, mikor nem ezt kerestem, akkor mindig belebotlottam.
Köszi!
___________________________________________________________________
Lógnak a pálmafán a kókuszok .... :)
- A hozzászóláshoz be kell jelentkezni
ez pl.
--
Gentoo motto: It's worth spending eight hours trying to make something load 20ns faster.
- A hozzászóláshoz be kell jelentkezni
Köszi! Ez így már fél siker. Na egy kicsit több. Most megadtam neki, hogy /valami/images és onnan szépen nyomja a lighty a képeket. Viszont hogy tudnám az az apache -nak, hogy ne csak az adott könyvtárat irányítsa át a lightynak, hanem a *.jpg *.gif *.png fájlokat, mert képek nem csak a fent megadott könyvtárban vannak.
Lehet ilyet?
___________________________________________________________________
Lógnak a pálmafán a kókuszok .... :)
- A hozzászóláshoz be kell jelentkezni
Az adott host beállításához az apacheban hozzáadtam a következő sorokat:
ProxyRequests Off
ProxyPreserveHost On
ProxyPass /kepek http://0.0.0.0:81
ProxyPassReverse /kepek http://0.0.0.0:81
A lightynak a /kepek a document rootja. Így az apache2 az összes /kepek kiszolgálását a lightyra passzolja át. Én azt szeretném, hogy az egész tartalomból az összes jpg, jpeg, gif, png, css, js tartalmakat a lighty szolgálja ki, így az apache2 -re maradna csak a php -vel való foglalkozás. Gondolom valami url rewrittal kellene módosítani a fent említett apache beállítást. Segíteni valaki ebben?
___________________________________________________________________
Lógnak a pálmafán a kókuszok .... :)
- A hozzászóláshoz be kell jelentkezni
Sziasztok!
Én sem nyitnék külön topicot, legalább egy helyen lesz az érdeklődöknek:)
Sajnos a oly sokszor feljött téma nekem sem megy:-/
Cél: egy külső valami.php-ról ne lehessen elérni a szervert, vagy vmi hibaoldalra dobja át.
Megvalósitási próbálkozás:
1.
RefererIgnore http://kulsodomain.hu/iframe.php
/mod_log_referer.so modul betötve/
Sajnos hiába teszem be ezt a direktivát, mintha ott sem lenne.
2.
RewriteEngine on
RewriteMap emap txt:/etc/apache-ssl/refer.txt
RewriteCond %{HTTP_REFERER} !^-$
RewriteCond ${emap:%{HTTP_REFERER}} ^-$
RewriteCond %{REQUEST_FILENAME} (htm|html|php)$
RewriteRule ^(.*)$ http://sajatdomain.hu/hiba.html [R,L]
cat refer.txt:
http://kulsodomain.hu/iframe.php -
Sajnos itt sem érek el semmit.
Hol hibázok? Mily módon lehetne megvalósitani a fenti célt?
Előre is köszönöm!
- A hozzászóláshoz be kell jelentkezni
Csak egy tipp, mi lenne ha: RewriteRule ^(.*)$ http://sajatdomain.hu/hiba.dev [R,L]
átneveznéd a hiba file pl .dev-re.
- A hozzászóláshoz be kell jelentkezni
sajnos igy sem megy, simán behozza bármelyik linket egy alapesetben tiltott phpfájlról linkelve.
igy próbálom tesztelni:
valami.php
<?php
echo $_SERVER['HTTP_REFERER'];
echo "link";
?>
/valami.php szerepel a refer.txt-ben/
a "echo $_SERVER['HTTP_REFERER'];" csak a mappáig irja ki, a valami.php fájlt már nem, nem tudom ez gondot okoz?
A refer.txt-be mappát is próbáltam tenni, amit az echo ir ki, de negativ. Egyébként is egy adott külső php-t kelle csak tiltanom.
- A hozzászóláshoz be kell jelentkezni
megvan, szuper minden, egy dologgal nem számoltam:
virtualhostokban van minden saját domain, igy a közé kell betenni a rewrite-ot, én pedig csak beszúrtam a config aljára.
- A hozzászóláshoz be kell jelentkezni
Hm...mégsem teljes a siker. vmi komolyabb fegyver kell.
Azért szerettem volna tiltani egy külső php fájlt, mert az a következő képpen akarta a toplista állását javitani:
img src="http://sajatdomain.hu/toplista/in2.php?s=volume&t=1179144772" width="1" height="1" alt=""
img src="http://sajatdomain.hu/toplista/in2.php?s=island&t=1179144772" width="1" height="1" alt=""
Ez percenként lefut náluk...
Feladatom, hogy kizárólag ezt a kérést generáló fájlt droppoljam, a domaint ne.
Az "img" miatt úgy látom nincs referer. Van ötletetek?
Előre is köszönöm!
- A hozzászóláshoz be kell jelentkezni
En elsodlegesen beszelnek a virtualhost tulajaval, masfelol siman kimozgatnam az adott file-t valami temp helyre. Mivel ez abszolute nem fair hozzaallas, igy nem feltetlen megoldas, ha csak webszerver szintjen nyirod ki az illetot.
- A hozzászóláshoz be kell jelentkezni
sziasztok!
elakadtam rewrite-ban énis..
olyanra lenne szükségem, hogy sok vhostban, ha beírják, hogy
http://doménnév/webmail, vagy https://doménnév/webmail, akkor
rewriteolja az apache, a doménnevet megtartva és küldje a usert
a https://doménnév/webmail-re, ami persze csak egy helyen van
/web/webmail könyvtárban
tudtok ebben segíteni? 2óra doksi guberálásból nem sikerült megcsinálnom,
lehetetlennek tartom lassan :)
- A hozzászóláshoz be kell jelentkezni
mod alias?
Alias /webmail /web/webmail
(a http:// -t meg redirecteled/rewrite-olod elotte https-re)
- A hozzászóláshoz be kell jelentkezni
Sziasztok!
Én is elakadtam kicsit, olyat szeretnék csinálni, hogy van a http://webmail.enyem.hu és ezt szeretném átirányítani a https://www.enyem.hu/squirrelmail-re. A 80 és a 443 is rendesen működik próbáltam többféle képpen, de nem igazán akart működni.
Előre is köszi a segítséget.
Üdv,
Warter
- A hozzászóláshoz be kell jelentkezni
Hali, itt a salyat fejlesztesu sef osztalyom.
Sajnos par funkciokat ki kellett torolnom belole mivel par specialis URL kezeles volt beleepitve amit egy sitenal kellett hasznalnom. Nem teszteltem le, de elmeletileg ez igy kell mukodjon.
Erdekessege az, hogy bizonyos URL-knek tetszoleges szoveget is megadhatsz, ehez bovitsd a "getAlias" fuggvenyt.
(pl: http://valami.hu/content/view/12 helyett http://valami.hu/search-engine-friendly.html )
file: .htaccess
DirectoryIndex index.html index.php
RewriteEngine On
#turn on the Rewrite engine, if it's not already active
#set the base directory to /
RewriteBase /
# now the rewriting rules
RewriteRule / index.php [L]
file: sef.php
<?php
//
// SEF class
// sef.php
//
/*
Szukseged lesz egy globalis $config tombre, ami a kovetkezoket kell tartalmazza
$config = Array(
'sitepath' => 'http://www.valami.hu/',
'sef' => true // ha az ertek "false" akor nem fogja vegrehajtani az URL atalakitast
);
*/
class sef {
var $lang;
var $ack=0;
function sef(){
global $config;
$this->ack= $config['sef'];
if ($this->ack) {
$this->restoreGet();
}
}
function restoreGet(){
$this->sefRedirect($_SERVER['REQUEST_URI']);
$parts = split("/", $_SERVER['REQUEST_URI']);
$ext = $this->getInternal($_SERVER['REQUEST_URI']);
if ($ext) {
$_GET = $this->parseURL($ext);
} else {
for ($i=0; $i<count($parts); $i += 2)
$_GET[$parts[$i]] = $parts[$i+1];
}
}
function sefRedirect($url) {
global $config;
$url = explode('index.php?',$url);
if (count($url)>1) {
header('Location: ' . $config['sitepath'] . $this->generateSEF('index.php?'.$url[1]) . "\n");
die();
}
}
function getsef($internal){
global $config;
if (!$this->ack) return $internal;
$external = $this->generateSEF($internal);
return $config['sitepath'] . $external;
}
function parseURL($internal) {
$URLparams = parse_url($internal);
$URLparams = $URLparams['query'];
$URLquery = explode('&',$URLparams);
for($i=0;$i<count($URLquery ); $i++) {
$atmp = explode('=',$URLquery[$i]);
$A_GET[$atmp[0]] = $atmp[1];
}
return $A_GET;
}
function generateSEF($internal) {
$aget = $this->parseURL($internal);
$pkeys = array_keys($aget);
$alias = $this->getAlias($internal);
if ($alias) {
$sefURL = $alias;
} else {
for ($i=0; $i<count($pkeys); $i++) {
if ( ($pkeys[$i]!='task')&&($pkeys[$i]!='lang') )
$sefURL .= $pkeys[$i] . '/' . $aget[$pkeys[$i]] . '/';
}
}
return $sefURL;
}
function getAlias($internal) {
$retval = '';
// Egyedi URL hozzarendeles.
//Pl: http://www.valami.hu/search-engine-friendly.html
return $retval;
}
}
?>
A hasznalata egyszeru:
1. Az index.php alomanyba (lehetoleg minel elobre):
<?php
require_once('sef.php');
global $sef;
$sef = new sef();
?>
2. Minden hivatkozas letrehozasanal ezt kell alkalmaznod:
<a href="<?php $sef->getsef('index.php?....');?>" >link szovege</a>
(erre egy masik modszer, ami lenyegesen praktikusabb, hogy buffer-olt kimenetet hasznalsz, letapogatod az url-ket es mindenikre alkalmazod a getsef fuggvenyt. Figyelem: ezt csak abban az esetben hasznald, ha az oldalon semmien mas komponensed nem hasznalja a kimeneti buffert)
- A hozzászóláshoz be kell jelentkezni
miért van, hogy adott rewritecond működik .htaccess-ben, de a server configban nem? server configban alábbi példa minden kérést átirányít feltétel nélkül és nem jelenik meg semmi a rewritelog-ba. .htaccess-ből minden rendben.
Server version: Apache/2.2.3
...
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . http://localhost/ [NS,L]
- A hozzászóláshoz be kell jelentkezni
Rewrite eseteben kiemelt fontossagu az emlitett sorok elhelyezkedese a fo konfigon belul. Ilyen ertelemben kerek korrekciot.
- A hozzászóláshoz be kell jelentkezni
Nálam is felmerült egy hasonló probléma amire nem tudok rájönni:
RewriteEngine On
RewriteRule ^/mappa/(.*) http://domain.hu/download.php?eleres=$1 [R=permanent]
Ezt eddig remekül működik, azonban szeretném ha csak fájlok esetén irányitana át.
Igy próbálkoztam:
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^/mappa/(.*) http://domain.hu/download.php?eleres=$1 [R=permanent]
Ez esetben viszont sosem irányit át. Hogyan lehetne mégis megvalósitani a szitut?
--
Desktop: 2.6.21-gentoo-r4 AMD Athlon(tm) 64 X2 Dual Core Processor 3800+
Laptop: 2.6.22-gentoo-r5 Mobile Intel(R) Pentium(R) 4 - M CPU 2.00GHz
- A hozzászóláshoz be kell jelentkezni
Jobb ha elmondod, mit szeretnel. Sejtem mi a problema, de jo lenne tisztan latni. Annyit megsugok, hogy a jelenlegi rewrite csak akkor iranyit at, ha a hivatkozott file amugy letezik
- A hozzászóláshoz be kell jelentkezni
autoindex be van kapcsolva, úgy ballagtam el a fájlig, tehát létezik, mégsem irányitotta át.
Cél: domain alatt lévő 1 mappából minden fájlt csak a download.php-n keresztül lehessen letölteni, ezért oda szeretném átirányitani. Mappán kivül pedig hagyja ahogy van.
Jelenleg kiterjesztésre működik már a dolog, de jobb szeretném minden fájlra kiterjeszteni, olyanra is, ahol gagyi.fajlnev.sokpontos.kiterjesztes van.
RewriteCond %{REQUEST_FILENAME} (\.rar|\.exe|\.zip)
RewriteRule ^/mappa/(.*) http://domain.hu/download.php?eleres=$1 [R=permanent]
--
Desktop: 2.6.21-gentoo-r4 AMD Athlon(tm) 64 X2 Dual Core Processor 3800+
Laptop: 2.6.22-gentoo-r5 Mobile Intel(R) Pentium(R) 4 - M CPU 2.00GHz
- A hozzászóláshoz be kell jelentkezni
sziasztok!
én egy olyan rewrite-t szeretnék megoldani, ahol a port is más igy gondolom valami más átirányitásra is szükségem van
maga a rewrite is picit máshogy lenne
jó néhány oldalt átolvastam
mindenhol olyan példákat találtam ahol
az olvasható linket /forum/611 átforditotta forum.php?id=611 -re például
nekem nagyából a forditott kellene de még a port is más
weben igy hivom meg:
forum.php?ID=23 és szeretném ezt ide átküldeni a nélkül hogy a forum.php meghivódjon localhost:1010/23/forum
igy lenne a sorrent
ezt hogyan tudom megcsinálni?
előre is köszönöm !
- A hozzászóláshoz be kell jelentkezni
http://domain.hu:80/download.php?eleres=$1
Ennyi a változtatás
- A hozzászóláshoz be kell jelentkezni
akkor ilyet nem is lehet ?
- A hozzászóláshoz be kell jelentkezni
Talán:
RewriteRule (.*) http://localhost:1010/$1/forum [R=permanent]
vagy:
RewriteEngine on
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/forum.php\?ID=(.*)$ http://localhost:1010/$1/forum [L,QSA]
- A hozzászóláshoz be kell jelentkezni
sajna nem megy :(
próbáltam már mindenfélét
RewriteEngine On
RewriteOptions Inherit
RewriteRule ^/forum\.php\?id=(.*) http://127.0.0.1:1010/$1/forum [P]
RewriteLog /var/log/apache2/rewrite.log
RewriteLoglevel 2
- A hozzászóláshoz be kell jelentkezni
Hová javasoljátok tenni ?
nekem a sites-enabled/default fájlban van a részben
áttegyen a .htaccess -be?
itt viszont több kérdés is felmerül
a jelenlegi web root könyvtáramban nincs .htaccess
ha létrehozom kell-e valamit állitani az apache.conf -ban hogy beolvassa azt ?
illetve a .htaccess fájlba egyből lehet irni:
RewriteEngine on
stb ...
még annyi hogy honnan tudom, hogy biztosan be van töltve a mod_rewrite ?
mert a log megy tehát akkor gondolom be van tölltve
előre is köszi a segitséget !
- A hozzászóláshoz be kell jelentkezni
odáig már eljutottam hogy már csak a ?= -t kellene kiszűrnöm
átdobna ide:
localhost:1010/?ID=89
ez jó az ID 89 de a ?ID= nem kellene nekem
^/forum\.php(.*) http://localhost:1010/$1
alakul, de szükségem lenne segitségre, hogy a ?ID= ne legyen ott csak ami az = jel után van
köszönöm
- A hozzászóláshoz be kell jelentkezni
Sziasztok!
Sajnos akárhogy néztem, nem értettem meg a leírásokból sem a regex működését.
Egy rewrite kéne nekem is, méghozzá ilyen:
Eredeti url: http://server:2710/announce/pk/announce
Új url: http://server:2720/pk/announce
szerk:
A pk helyén egy 32 karakteres HASH áll. PL: ca9f70f0694097784affbd944567f335
Aki tud, kérem segítsen!
üdv
- A hozzászóláshoz be kell jelentkezni
Szeretném megoldani, hogy a txt-ben felsorolt domaineket rewrite segítségével egy másik helyre irányítsak.
Működik, de csak akkor, ha fájlra pontosan felsorolom a referert a map txt-ben.
Én azonban azt szeretném, hogy http://domain.hu/valami/index.php helyett http://domain.hu/ elég legyen.
Virtualhostban ezek vannak:
RewriteEngine on
RewriteMap emap txt:/etc/apache2/refer.txt
RewriteCond %{HTTP_REFERER} !^-$
RewriteCond ${emap:%{HTTP_REFERER}} ^-$
RewriteCond %{REQUEST_FILENAME} (.*)$
RewriteRule ^(.*)$ http://celdomain.hu [R,L]
Referer.txt tartalma:
http://domain.hu/valami/index.php -
Próbáltam a txt-be regexet tenni. Módosítani a rewritecondot, de nem jártam sikerrel.
Megoldható valahogy?
- A hozzászóláshoz be kell jelentkezni