Avatar billede franz.skaaning Nybegynder
29. november 2003 - 02:41 Der er 16 kommentarer og
1 løsning

Bruge .htaccess til at definere index-fil med

Jeg får hosted mine sites i byen og har derfor ikke selv adgang til serveren.

Jeg kan næsten gøre hvad jeg vil med .htaccess - filen i roden har jeg dog fundet ud af.

Jeg har i den idag defineret index.html.var som index-fil, og i filerne inde.html.* (* angives som landekode - dk for Danmark) - de besøgende ledes nu til den side jeg gerne vil have dem til.

Men egentlig ville jeg hellere gøre det lidt mere avanceret - det kan jeg bare ikke finde ud af.

Jeg har to domæner der har samme rodfolder: lexebus.net og lexebus.dk. Jeg kunne godt tænke mig at de der indtaster lexebus.dk altid hopper til index.php?newlang.php som index-side.

Hvis jeg ændrer den i .htaccess-filen, så er det også det nadet domænes besøgende der kommer til den danske side. Og det er ikke så hensigtsmæssigt da det kun er ca. 25% af de besøgende der er danskere.

Jeg er ny her på sitet, og det kan godt være spørgsmålet hat været opppe at vende før - så har jeg dog ikke kunnet finde svaret.
Avatar billede htm Nybegynder
29. november 2003 - 12:31 #1
RewriteEngine on
RewriteCond %{HTTP_HOST}    lexebus\.dk$
RewriteRule ^(.+)            /index.php?newlang.php

Dette skulle kunne gøre det.
Avatar billede franz.skaaning Nybegynder
29. november 2003 - 12:59 #2
Det giver meget lange svartider, og til sidst timeout.
Avatar billede htm Nybegynder
29. november 2003 - 13:19 #3
Ja det kan jeg godt se det vil gøre.

Jeg har løst det ved lidt ekstra tjek, det er fordi den altid vil passe.

RewriteEngine on
RewriteCond %{HTTP_HOST}          lexebus\.dk$
RewriteCond %{QUERY_STRING}        ^$
RewriteRule ^index.php$            /index.phpnewlang=dan

Du kan selv bestemme om brugeren skal se om han bliver redirectet til en anden side eller ej. Hvis du vil have han skal se det skal du smide [R] bag ved /index.php...
Avatar billede htm Nybegynder
29. november 2003 - 13:23 #4
RewriteEngine on
RewriteCond %{HTTP_HOST}    lexebus\.dk$
RewriteCond %{QUERY_STRING}    ^$
RewriteRule ^(.+)        /index.php?newlang=dan [R]
Avatar billede franz.skaaning Nybegynder
29. november 2003 - 16:02 #5
jeg kan godt åbne siden, men billeder og alt går fløjten og der er ingen links der virker.

Er du sikker på at det vil komme til at virke med Rewrite, vil all forespørgsler til lexebus.dk ikke blive erstattet? Det er jo kun når brugerne åbner siden der er nødvendigt - de skal jo også gerne kunne ændre sproget.
Avatar billede htm Nybegynder
29. november 2003 - 16:18 #6
Du skal bruge den nummer 2 jeg skrev. hvor rewriterule tjekker for index.php.

Du kan ikke gøre det uden mod_rewrite.

Altså den du skal bruge skal se sådan ud:

RewriteEngine on
RewriteCond %{HTTP_HOST}          lexebus\.dk$
RewriteCond %{QUERY_STRING}        ^$
RewriteRule ^index.php$            /index.php?newlang=dan

Den rewriter så kun index.php
Avatar billede franz.skaaning Nybegynder
29. november 2003 - 22:07 #7
OK, det virker så fint. Hvordan får jeg så DirectoryIndex til at være index.html.var på lexebus.net der har samme rodfolder - for at få forslaget til at virke skal jeg jo ændre DirectoryIndex til index.php.
Avatar billede htm Nybegynder
29. november 2003 - 22:22 #8
Du kan jo evt. tilføje noget mere rewrite. eller skrive index.html i stedet i rewriten?

RewriteEngine on
RewriteCond %{HTTP_HOST}          lexebus\.dk$
RewriteCond %{QUERY_STRING}        ^$
RewriteRule ^index\.html$            /index.php?newlang=dan

eller bare index

RewriteEngine on
RewriteCond %{HTTP_HOST}          lexebus\.dk$
RewriteCond %{QUERY_STRING}        ^$
RewriteRule ^index\.[a-zA-Z]+$            /index.php?newlang=dan

Og forresten mener at . skal escapes i rewriterule også, ellers fjern den.
Avatar billede franz.skaaning Nybegynder
29. november 2003 - 23:42 #9
Jeg får ikke fejl - men jeg kan ikke få den til at overrule index.html.var
Avatar billede htm Nybegynder
29. november 2003 - 23:43 #10
Hvad med den nederste rewrite? den bør være ligeglad med om du har skrevet index.html eller index.fil eller whatever. Og så sætter du din directoryindex til index.html
Avatar billede franz.skaaning Nybegynder
29. november 2003 - 23:46 #11
det samme..

RewriteEngine On
RewriteCond %{HTTP_HOST}          lexebus\.dk$
RewriteCond %{QUERY_STRING}        ^$
RewriteRule ^index\.[a-zA-Z]+$            /index.php?newlang=joy

Jeg har ændret den til joy da index,html.var også redirevter til dan - så kan jeg i det midste se det.
Avatar billede htm Nybegynder
29. november 2003 - 23:47 #12
Prøv og fjern \
Avatar billede franz.skaaning Nybegynder
30. november 2003 - 01:32 #13
Det er det samme

DirectoryIndex index.html.var
AddHandler type-map var
Options FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST}          lexebus.dk$
RewriteCond %{QUERY_STRING}        ^$
RewriteRule ^index.[a-zA-Z]+$            /index.php?newlang=joy

Virker som om at den virker lidt hurtigere...og nu fik du lige det hele også.
Avatar billede htm Nybegynder
30. november 2003 - 11:27 #14
RewriteRule ^index.[a-zA-Z.]+$            /index.php?newlang=joy

sådan skullw det gerne køre, så kan der også være . i efternavnet.

og ja mod_rewrite kører hurtigere da det bliver ekseveret før og hurtigere.
Avatar billede franz.skaaning Nybegynder
30. november 2003 - 11:44 #15
kan man ikke forhøje point for god opførsel og udholdenhed?
Avatar billede franz.skaaning Nybegynder
30. november 2003 - 11:45 #16
jeg fandt selv ud af det - kan du ikke svare - det virker - og tak for hjælpen
Avatar billede htm Nybegynder
30. november 2003 - 11:47 #17
Svar
du må selvom du vil forhøje point, det kan lade sig gøre i menuen under funktioner. "afsæt flere point"
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