Avatar billede learner Praktikant
31. oktober 2006 - 14:37 Der er 23 kommentarer og
1 løsning

hjælp med htaccess RewriteRule

Jeg har et problem med at få min htaccess til at gøre som den skal.

Her er den jeg plejer at bruge (v surftown)
php_flag register_globals off
RewriteEngine on
RewriteRule ^(.*)$  http://sub.%{HTTP_HOST}.mit-andet-domaene.dk/$1 [P]
men den virker ik ved min nye host arhosting.com
jeg får fejlmeddelelse: 404 not found

Denne htaccess virker dog:
php_flag register_globals off
RewriteEngine on
RewriteRule ^(.*)$  http://sub.%{HTTP_HOST}.mit-andet-domaene.dk/$1
altså uden [P]
men så "hopper" man bogstaveligt talt osse over på sub.noget.tld.mit-andet-domaene.dk og det vil jeg helst ikke.

Den skal vise
sub.noget.tld.mit-andet-domaene.dk
men blive stående på noget.tld
og det virker fint ved surftown når jeg skriver [P] i slutningen af linien.

Jeg sætter altså [P] i linien for så ser det ud til at man stadig står på det andet domæne. Den ændrer altså ikke i adresselinien. Men jeg har fundet følgende:

[P] 'proxy|P' (force proxy)
This flag forces the substitution part to be internally forced as a proxy request and immediately (i.e., rewriting rule processing stops here) put through the proxy module. You have to make sure that the substitution string is a valid URI (e.g., typically starting with http://hostname) which can be handled by the Apache proxy module. If not you get an error from the proxy module. Use this flag to achieve a more powerful implementation of the ProxyPass directive, to map some remote stuff into the namespace of the local server.
Notice: To use this functionality make sure you have the proxy module compiled into your Apache server program. If you don't know please check whether mod_proxy.c is part of the ``httpd -l'' output. If yes, this functionality is available to mod_rewrite. If not, then you first have to rebuild the ``httpd'' program with mod_proxy enabled.
fundet her: http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

Jeg forstår ikke hvad der står. ?

nogen der kan hjælpe mig med at få det her til at virke?

På forhånd tak :o)
Avatar billede coderdk Praktikant
31. oktober 2006 - 14:52 #1
Din host har deaktiveret proxy-modulet i deres apache (det ville jeg også gøre hvis jeg var en ISP) ;)
Avatar billede learner Praktikant
31. oktober 2006 - 15:32 #2
hehe :o)

og det betyder?
Hvad kan jeg gøre så?
Avatar billede learner Praktikant
31. oktober 2006 - 16:29 #3
damn det må da være muligt på en måde....
Det ville være cool hvis det kan komme til at køre

men jeg har fundet en alternativ løsning, nemlig denne php/htaccess løsning:

jeg smider disse to filer

htaccess :
RewriteRule ^(.*)?$     index.php

index.php :
$array_with_lines = file("http://sub.".strtolower(str_replace("www.","",$_SERVER["HTTP_HOST"])).".mit-andet-domaene.dk".$_SERVER["REQUEST_URI"]);
echo implode("",$array_with_lines);


men så virker $_POST[] jo desværre ikke...
Medmindre der findes en løsning på dette problem?

man det er da et alternativ :o)
som måske kan forbedres så det virker
Avatar billede coderdk Praktikant
31. oktober 2006 - 17:42 #4
Så skal du bruge en proxy skrevet i PHP, måske denne: http://whitefyre.com/poxy/
Ellers ville jeg ikke sætte min lid til det, med mindre det er meget simpelt ;)

file/implode kan i øvrigt erstattes af readfile() eller echo/file_get_contents :)
Avatar billede learner Praktikant
31. oktober 2006 - 19:51 #5
bruge en proxy skrevet i PHP ?
det fatter jeg så ik så meget af :o)
Er det en fil? eller hvad?


vedr readfile() og file_get_contents() :
skriver man så
echo readfile();
eller
echo implode("",readfile());

kan man på en eller anden måde medsende eventuelle $_POST[] værdier i et file() readfile() eller  file_get_contents() kald?
Avatar billede coderdk Praktikant
31. oktober 2006 - 20:04 #6
Følg linket, så finder du ud af det ;) Det er en proxy der er skrevet i PHP - En proxy er en som kan vise en anden side fra sig selv :)

man skriver:

readfile( $url );

eller:

echo file_get_contents( $url );
Avatar billede learner Praktikant
31. oktober 2006 - 20:54 #7
jeg har læst om og prøvet at bruge/uploade den proxy og den virker ik for mig.

Men jeg tænkte:
Kan jeg ikke aktivere proxy-modulet, så jeg kan bruge htaccess som jeg gerne vil
Feks ved at smide en php.ini fil eller noget

eller findes der andre måder at skrive RewriteRule i htacces.
Avatar billede learner Praktikant
31. oktober 2006 - 22:16 #8
en anden ide jeg har fået er:
Siden der ikke er problemer med GET.. jeg kan lave alle formularer som benytter method="POST" om, således at action="/fil.php" bliver til action="http://sub.<?php echo $fake_domæne; ?>.mit-andet-domaene.dk/fil.php" og altid sende en returadresse med som kunden bliver sendt tilbage til.

jeg vil dog gerne camouflere at der sendet til et andet domæne
Er det ik noget med at lave et JS der ved onsubmit="erstat action-felt med den korrekte sti"

men så opstår der sikkert også nogle problemer med sessions og cookies, men det må der også findes en løsning på
Avatar billede coderdk Praktikant
31. oktober 2006 - 22:17 #9
Nej, det tror jeg ikke. De skal ændre i httpd.conf og tilføje noget i stil med "LoadModule modules/mod_proxy" og genstarte serveren ;P
Avatar billede learner Praktikant
31. oktober 2006 - 22:22 #10
ps er readfile() hurtigere end file() eller file_get_contents() ??
Ved du det?
Avatar billede learner Praktikant
31. oktober 2006 - 22:57 #11
jeg kan styre forskellige ting(Cpanel) bla er der noget der hedder "Apache Handlers"
måske kan jeg indstille den således at proxy-moduletaktiveres, så jeg kan bruge htaccess som jeg gerne vil

når jeg klikker på "Apache Handlers" knappen kommer jeg til en side med to felter hvor der står:
Extension(s)  Handler
Avatar billede coderdk Praktikant
31. oktober 2006 - 23:18 #12
Nej, handlers er til at håndtere f.eks. .php og .asp osv
Avatar billede coderdk Praktikant
31. oktober 2006 - 23:19 #13
Er der intet i cPanel om f.eks. mod_rewrite.so ?
Avatar billede learner Praktikant
31. oktober 2006 - 23:40 #14
nej desværre ik, jeg kan ik finde noget der ligner.
Avatar billede learner Praktikant
01. november 2006 - 01:20 #15
skrev til ar hosting om de kumme aktivere mod_rewrite men øv det ville de ik...

de skrev:
Thank you for contacting AR Hosting Solutions.
We do not offer or will be able to install proxy module/server for security reasons.
Avatar billede learner Praktikant
01. november 2006 - 01:40 #16
kender i nogle andre end surftown der tilbyder muligheden for fast ip og hvor man kan bruge mod_rewrite og htaccess? Helst til overkommelige priser
det må os gerne være firmaer udenfor dk
Avatar billede coderdk Praktikant
01. november 2006 - 08:20 #17
Næsten alle steder ;) Du mener mod_proxy - Jeg er faktisk overrasket over at det virkede hos surftown, det må være noget de har overset ;)
Avatar billede learner Praktikant
01. november 2006 - 12:54 #18
Tror du de kan finde på at deaktivere det ligepludselig? for så går mit system jo ned.
Avatar billede coderdk Praktikant
01. november 2006 - 13:01 #19
Nah de har sikkert ikke opdaget det :P På den anden side, hvem ved - Måske ER det med vilje :)
Avatar billede learner Praktikant
01. november 2006 - 20:37 #20
Men for lige at samle op her til sidst...
Hvad er det jeg skal tjekke inden jeg køber et webhotel.
Altså hvis jeg vil have htaccess RewriteRule til at virke med [P]

skriv venligst svar tak :o)
Avatar billede learner Praktikant
02. november 2006 - 01:17 #21
Er dette kravene for at htaccess RewriteRule virker med [P] :
linux / Unix
mod_proxy skal være aktiveret
htaccess skal virke

?? :O)
Avatar billede coderdk Praktikant
02. november 2006 - 10:56 #22
Modulerne mod_proxy og mod_rewrite skal være aktive, og de skal tillade .htaccess - yeps :)
Avatar billede learner Praktikant
15. november 2006 - 01:25 #23
lukker denne
smid venligst jeres svar tak :o)
Avatar billede coderdk Praktikant
15. november 2006 - 02:56 #24
ok :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester