RewriteRule mi a baj ezzel?
Három oldalon próbáltam ki a következő .htaccess eli kódot. Azt szeretném elérni, hogy bármit amit a domain neve után írnak, azt egy fájl paraméterben kapja meg. Tehát: www.domain.hu/hirek/ez_egy_hirek => index.php?q=hirek/ez_egy_hirek
RewriteEngine on
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
1, A munkahelyemen a web oldal könyvtárban (/home/httpd/html, elérhetősége: www.domain.hu) működik, tehát az index.php-ban ha kiírom a $_GET["q"]-t, akkor kiírja a paramétert.
+ Az itthoni Windowsos localhost-os (XAMPP) webszerveren is müxik.
2, Viszont a saját könyvtáramban (/home/dolg/nevem/public_html, elérhetősége: www.domain.hu/~nevem), már nem akarja az igazságot.
a, Ha ezt írom be: www.domain.hu/~nevem/konyvtar akkor a hibaüzenet: 400 Bad Request
b, Ha ezt írom be: www.domain.hu/~nevem/konyvtar és egy / vagy /valami, akkor a hibaüzenet: Not Found, The requested URL /home/dolg/nevem/public_html/konyvtar/index.php was not found on this server.
3, A saját tárhelyemen (dataglobe) már kidom a szolgáltató hiba oldalára, hogy az oldal nem található.
Valószínű, hogy a DocumentRoot máshol lenne? httpd.conf-hoz nem férek hozzá.
Van erre valammi megoldás, hogy működjön mindenhol? Esetleg a RewriteBase segítene?
A RewriteBase-t megpróbálnám.
pl.:
RewriteEngine on
RewriteOptions MaxRedirects=10
RewriteBase /
.... a többi
Viszont azt se szabad elfelejteni, hogy sok helyen nincs engedélyezve a url átírás, nem lehet, hogy itt is ez az eset áll fent?
RewriteCond %{REQUEST_URI} !^/$
RewriteRule ^(.*)$ /index.php?q=$1 [QSA]
aztan ennyi kb. de hasznald a rewritelogot es akkor lathatod mit csinal (rewriteloglevel-t meg rakd 9-esre) de jelen esetben csak az a gond hogy a /-t is atakarja iranyitani, igy egy vegtelen ciklus lesz. nomeg esetleg ha a php cgi, akkor azt is bele kell irni hogy azt se iranyitsa at.
Kipróbáltam a munkahelyi saját tárhelyemen a követező kódot:
[code]
RewriteEngine on
RewriteBase /konyvtar/
RewriteCond %{REQUEST_URI} !^$
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
[/code]
Így működik is, de:
Ha így írom be: aldomain.domain.hu/konyvtar/ akkor tökéletes, visszadja q-ban a paramétert
de ha így írom be: www.domain.hu/konyvtar, akkor ez jelenik meg: aldomain.domain.hu/konyvtar/?q=/WWW/hu/domain/aldomain/_/_/konyvtar
Próbáltam így is, de semmi változás:
[code]
RewriteCond %{REQUEST_URI} !^/$
[/code]
A benti gépen ha beállítom a RewriteBase-t /-re akkor valami végtelen ciklusba fut bele:
A www.domain.hu/~nevem/konyvtar/ címre ez történik www.domain.hu/~nevem/konyvtar/kvt/kvt/kvt/kvt/kvt...
Jelenleg most úgy van hogy a fő főoldal (index.php-je) át van írányítva a kvt könyvtárba.
Tehát valószínű hogy a documntRoot mutat más helyre.
Saját könyvtáram: /home/dolg/nevem/public_html/konyvtar/
Fő weboldal: /home/httpd/html/konyvtar/
Ui.: A fő weboldali könyvtárba tökéletes működik.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!