Loomy Skrevet 26. desember 2004 Del Skrevet 26. desember 2004 Lite spørsmål om mod_rewrite; Har følgende RewriteRule: RewriteRule ^(.*)php/(.*)$ $1?page=php&script=$2 [NC] Funker fett med f.eks domene.com/php/, men hvis jeg fjerner den siste slash'en blir det 404. Hvordan får jeg gjort slash'en etter "php" (og etter den andre "(.*)"-en) "valgfri". For å kanskje gjøre det litt knotete spørsmålet lettere å forstå, noen eksempel-URLer som jeg vil ha til å funke: domene.com/php/ funker domene.com/php funker ikke domene.com/php/test/ funker, men $script-variabelen i URL får verdien "test/" med slash'en domene.com/php/test funker Lenke til kommentar
lokeland Skrevet 26. desember 2004 Del Skrevet 26. desember 2004 Du kan prøve å ta en titt her: http://www.phpfreaks.com/tutorials/23/0.php Lenke til kommentar
Loomy Skrevet 26. desember 2004 Forfatter Del Skrevet 26. desember 2004 Been there, done that Fikk ikke så mye ut av den artikkelen egentlig.. Lenke til kommentar
lokeland Skrevet 26. desember 2004 Del Skrevet 26. desember 2004 Ok.. Hva me å bruke http://www.tutorio.com/tutorial/php-altern...e-friendly-urls sin metode? Eneste jeg kan foreslå.. Lenke til kommentar
Loomy Skrevet 26. desember 2004 Forfatter Del Skrevet 26. desember 2004 Den bruker ikke mod_rewrite engang, så det var ikke mye hjelp å få der Lenke til kommentar
Simon Zimmermann Skrevet 28. desember 2004 Del Skrevet 28. desember 2004 Hva med: RewriteRule ^(.*)php/(.*)/?$ $1?page=php&script=$2 [NC] Her er noen linker som kanskje hjelper deg. Forklaring av regulæreuttrykk Mod_rewrite: A beginners Guide URL Rewriting Guide Lenke til kommentar
Loomy Skrevet 28. desember 2004 Forfatter Del Skrevet 28. desember 2004 Man skulle tro det fikset biffen, men nei :\ Lenke til kommentar
LoS Skrevet 29. desember 2004 Del Skrevet 29. desember 2004 (endret) Har du fått det til enda, Loomy? Du kan vel bare legge til flere RewriteRule's ? f.eks RewriteRule ^(.*)php$ $1?page=php [NC] RewriteRule ^(.*)php/(.*)$ $1?page=php&script=$2 [NC] RewriteRule ^(.*)php/(.*)/$ $1?page=php&script=$2 [NC] Muligens? PCRE-syntaksen som mod_rewrite bruker finner man litt bedre dokumentasjon på her Må forøvrig også minne på at det her er ett stykke unna PHP. edit: testa litt nærmere selv nå, mulig det ikke funker helt, eller at du må bruke noen andre Regular expressions. Endret 30. desember 2004 av LoS Lenke til kommentar
Lokaltog Skrevet 2. januar 2005 Del Skrevet 2. januar 2005 (endret) Hehehe. Hvis du vil ha et valgfritt tegn eller en valgfri tegngruppe er det ikke verre en at du legger til et spørsmålstegn etter tegnet som skal være valgfritt. Derfor er jeg ganske sikker på at følgende vil fungere: RewriteRule ^(.*)php/?([^./]*)/?$ $1?page=php&script=$2 [NC] Edit: Forandret litt slik at du slipper at skråstreken er med i variabelen $2. Merk at det nå ikke er tillatt med skråstreker eller punktum'er i variabel $2 i det hele tatt (dette bidrar til å gjøre scriptet sikrere). Endret 2. januar 2005 av Lokaltog Lenke til kommentar
Tha_Zaynt Skrevet 2. januar 2005 Del Skrevet 2. januar 2005 (endret) hvordan blir rewriterulen på siden min når alle sidene har følgende mønster : ?page=xxx Akkurat det samme som over? altså RewriteRule ^(.*)php/?([^./]*)/?$ $1?page=php&script=$2 [NC] ...eller? Endret 2. januar 2005 av Tha_Zaynt Lenke til kommentar
LoS Skrevet 2. januar 2005 Del Skrevet 2. januar 2005 Akkurat nå så ser min slik ut: RewriteRule ^(.*)/$ /index.php?page=$1 Er ikke så veldig stø på mod_rewrite, anyways så kan jeg nevne at jeg sjekker varaiblen til page i phpscriptet i stedet for i "regelen" med en regex. kan bytte ut (.*) med ([a-z0-9]) steden for eksempel. Lenke til kommentar
Tha_Zaynt Skrevet 2. januar 2005 Del Skrevet 2. januar 2005 ok, skal prøve det nå. Vet du forresten om om servetheworld har mod_rewrite aktivert? Lenke til kommentar
LoS Skrevet 2. januar 2005 Del Skrevet 2. januar 2005 Så lenge 70% av alle på webdesignforumet her inne bruker servetheworld, og jeg har sett att noen av dem bruker mod_rewrite, så vil jeg anta det. Kan også sjekke under "loaded modules", eller noe med phpinfo(); Lenke til kommentar
Tha_Zaynt Skrevet 2. januar 2005 Del Skrevet 2. januar 2005 hmm.... jeg åpnet notisblokk og skrev følgende: RewriteEngine on RewriteRule ^(.*)/$ /index.php?page=$1 Deretter lagret jeg denne som .htaccess og lastet den opp i "root"-mappa, men ingenting skjedde. Jeg prøvde også å laste opp filen til mappen der sidene som blir inkludert ligger. Har jeg glemt noe? En annen ting som er litt merkelig er at jeg ikke kan se .htaccess-filen med ftp-klienten min (bruker WS_FTP Pro) selv om jeg er _helt_ sikker på at den ble lastet opp.. Jeg får heller ikke opp noen melding om jeg vil skrive over den aktuelle filen når jeg laster opp en ny .htaccess fil. Lenke til kommentar
LoS Skrevet 2. januar 2005 Del Skrevet 2. januar 2005 (endret) Den skal ligge i dokumentrota, httpdocs eller public_html eller hva stw kaller det. Så skal du bare bruke dittdomene.no/hvasomvanligvisstodipage/. edit: stw har tydeligvis skrudd av visningen av skjulte filer, filer med . foran blir ofte gjort usynlige på linux, derfor ser du den ikke. Nå husker jeg ikke helt hva du stilte på i ftp-programmet, men i shell så bruker man ls -a hvis jeg ikke husker helt feil nå. Endret 2. januar 2005 av LoS Lenke til kommentar
Tha_Zaynt Skrevet 2. januar 2005 Del Skrevet 2. januar 2005 (endret) ok...så istedet for www.mitt.domene.com/index.php?page=hovedsiden, blir det: www.mitt.domene.com/hovedsiden ? Endret 2. januar 2005 av Tha_Zaynt Lenke til kommentar
LoS Skrevet 2. januar 2005 Del Skrevet 2. januar 2005 ja, men du må ha en / på slutten i dette tilfellet. Lenke til kommentar
Tha_Zaynt Skrevet 2. januar 2005 Del Skrevet 2. januar 2005 ok, det funket, men hvorfor blir ikke style.css inkludert? Lenke til kommentar
LoS Skrevet 2. januar 2005 Del Skrevet 2. januar 2005 Du kan ikke lenger bruke relative urler, alle må begynne på /, altså, link href="/style.css" osv. Lenke til kommentar
Loomy Skrevet 2. januar 2005 Forfatter Del Skrevet 2. januar 2005 (endret) Lokaltog: Det funket heller dårlig Får faktisk ikke opp hovedsiden engang. I hvertfall ikke når det er sånne ([^./]*) inni bildet. Her er for øvrig hele mod_rewrite-avdelingen i (den hittil best fungerende) htaccess-filen: RewriteEngine on Options +FollowSymlinks RewriteBase / RewriteRule ^.htaccess$ - [F] RewriteRule ^(.*)main/$ $1?page=main [NC] RewriteRule ^(.*)tutorials/(.*)$ $1?page=tutorials&view=$2 [NC] RewriteRule ^(.*)php/(.*)$ $1?page=php&script=$2 [NC] RewriteRule ^(.*)htmlcss/(.*)$ $1?page=htmlcss&article=$2 [NC] Noe som ikke hører hjemme der, mon tro? EDIT: Er vel ikke så veldig viktig å blokke punktum og skråstreker på dette stadiet. Dette vil jeg uansett ha en sperre for i selve include-scriptet. Endret 2. januar 2005 av Loomy Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå