Avatar billede walker Nybegynder
05. april 2004 - 12:19 Der er 11 kommentarer og
1 løsning

kan PHP bruge Apache's Alias eller ScripAlias?

Hej
Jeg har et problem med php, som ikke bruger apache's alias direktiver... dvs jeg i apache har ex. følgende direktiv:

Alias /inc/  /www/htdocs/inc/

Med php ville jeg gerne kunne skrive noget lignende følgende:

<? include "/inc/page.html" ?>

men det kan ikke umidlbart lade sig gøre, da php ikke anvender de alias'er, men kun anveder stier fra filsystemet...

Kan det ikke lade sig gøre at få php til at anvende disse alias? eller på anden måde opnå den funktionalitet?

Mvh
Walker
Avatar billede sukos Juniormester
05. april 2004 - 12:25 #1
Du kan jo skrive den fulde sti?
<?php include("www/htdocs/inc/page.html"); ?>
Avatar billede sukos Juniormester
05. april 2004 - 12:27 #2
hov
<?php include("/www/htdocs/inc/page.html"); ?>
Avatar billede walker Nybegynder
05. april 2004 - 12:27 #3
jeps, men det er det jeg gerne vil undgå... hvis det er muligt
Avatar billede sukos Juniormester
06. april 2004 - 00:29 #4
Tror jeg ikke!

Men hvorfor vil du gerne undgå det?
Avatar billede walker Nybegynder
06. april 2004 - 13:22 #5
fordi jeg kører med flere domæner og virtualhoster subdomæner. For at ku referere til den samme sti i php, men komme ind i hver sin mappe på en ensartet måde. Samt gøre det simpelt at flytte dokumenter fra en win32 server til en unix. I windows vil alle absolutte referencer jo hede "C:/blah/blah" og i unix vil de hedde "/blah/blah/"...

men hvis der ingen måde er at gøre det på, må man jo leve med det, eller hacke serveren.

~walker
Avatar billede sukos Juniormester
06. april 2004 - 18:59 #6
hmm,
måske det du mangler er at bruge en .htaccess, for på den måde at automatisk først  include en phpfil ved hver request?

.htaccess
php_value auto_prepend_file  D:/fuld/sti/til/fil.php

Nu vil hver eneste side starte med at "indholde" filen fil.php

<?php

$fullpath = "c:/en/sti/";

?>

Så skal du ændre i .htaccess og fil.php
Avatar billede sukos Juniormester
06. april 2004 - 19:00 #7
hmm, eller måske en include_path i stedet for prepend?
Avatar billede sukos Juniormester
06. april 2004 - 19:18 #8
hmm, det sidste får jeg ikke lige til at virke, men på den anden måde er der jo kun to filer du behøver at ændre i, for at stien vil være korrekt.
Avatar billede sukos Juniormester
06. april 2004 - 19:24 #9
Hov, nu er jeg sgu dum!
Ville lukke vinduer ned med notepad, og opdagede først der at jeg havde testet med

echo include("en.php");

som jo så returnerede 1! :O)

Så altså, med .htaccess kan det gøres på denne måde:

php_value include_path  D:/sti/til/includefiler/

Og derefter blot bruge
include("enfil.php");
som rent fysisk ligger som defineret i .htaccess :O) (XP med php LoadModule)
Avatar billede walker Nybegynder
07. april 2004 - 13:42 #10
He, vidste ikke at man kunne definere php_value i apache-konfigurationen... det løser hele problemet, da jeg så bare indsætter "php_value include_path :/sti/til/includefiler/" i mine virtualhost direktiver, og dermed er de kun sti'en kun gældende for den enkelte virtualhost :P

Takker MANGE gange, da det er et problem, som jeg egentlig troede var umidlbar uløselig...

Smid lige et svar sukos :P
~walker

PS. man skal lige huske at men ikke skal ha '/' foran sin include, lige som man ellers skal med apaches Alias. dvs. <? include("inc/fil.php")?>
Avatar billede sukos Juniormester
07. april 2004 - 22:13 #11
Man kan ALT med Apache og PHP! Og hvis ikke, ja, så kan det laves! :O)

Hvis du blot har brug for 0 eller 1 som værdi for PHP, skal du bruge php_flag og ikke php_value

php_flag register_globals 1
php_value register_globals On


(XP med php LoadModule)
Avatar billede sukos Juniormester
07. april 2004 - 22:13 #12
nåh, shit!
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