Kom ihåg mig?
Home Menu

Menu


Dölja .php med htaccess

Ämnesverktyg Visningsalternativ
Oläst 2009-05-27, 23:24 #1
SajtSnickaren SajtSnickaren är inte uppkopplad
Nykomling
 
Reg.datum: May 2009
Inlägg: 12
SajtSnickaren SajtSnickaren är inte uppkopplad
Nykomling
 
Reg.datum: May 2009
Inlägg: 12
Jag har fått hjälp av kille på nätet med att bygga en ordliste-sajt. På sajten finns det länkar (som leder till PHP-filer) som ser ut så här:
http://www.test.se/add/ (filen 'add.php' finns på servern)
http://www.test.se/browse/letter/k (filen 'browse.php' finns på servern)

Utvecklaren ger rådet att jag skapar en htaccess-fil och han gissar att den skall se ut något i stil med:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

Tyvärr funkar detta inte. Får ett 403-meddelande:
"You don't have permission to access /add/ on this server"

Jag mailade då tillbaka och får detta svar:
"Jag har inte ngn separat .htaccess-fil utan har det i en apacheconfigfil. I den finns bara ”RewriteEngine on” (samt, såklart, massa övriga inställningar för apache. Det är det enda jag kan se som har med mod_rewrite att göra iaf). Du kan ju alltid testa att bara ha det i .htaccessfilen och se hur det går?"

Testade då att bara ha ”RewriteEngine on” i filen, men får samma fel.

Hoppas att någon med kunskap om 'mod_rewrite' kan hjälpa mig.
SajtSnickaren är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-28, 07:48 #2
Jesper D Jesper D är inte uppkopplad
Medlem
 
Reg.datum: Feb 2008
Inlägg: 164
Jesper D Jesper D är inte uppkopplad
Medlem
 
Reg.datum: Feb 2008
Inlägg: 164
Testa:

Options +FollowSymlinks
RewriteEngine on

RewriteRule ^/start/$ index.php [NC,L]

RewriteRule ^/medlemmar/$ medlemmar.php [NC,L]

O.s.v, ser du sambandet?
Jesper D är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-28, 09:09 #3
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Du gör lite dubbelt arbete med din config.

Du talar inte om att den skall hantera kataloger som en fil, bara att filer som är *.php skall hanteras.

Kod:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/$ /$1_$2_$3.php [NC,L]
RewriteRule ^/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/$ /$1_$2.php [NC,L]
RewriteRule ^/([A-Za-z0-9_-]+)/$ /$1.php [NC,L]
</IfModule>
RewriteCond ovan är bra i detta fallet om man har JS, CSS mfl i andra kataloger som hämtas av klienten, för att förebygga att filerna går igenom PHP scripten.
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-28, 13:39 #4
SajtSnickaren SajtSnickaren är inte uppkopplad
Nykomling
 
Reg.datum: May 2009
Inlägg: 12
SajtSnickaren SajtSnickaren är inte uppkopplad
Nykomling
 
Reg.datum: May 2009
Inlägg: 12
Tack för snabba svar. Har testat utan större framgång:

1) Testat yehspers variant:
RewriteEngine on
RewriteRule ^/add/$ add.php [NC,L]

2) Och Jonas variant. Där testade jag även att ändra 'RewriteBase /' till 'RewriteBase /forkortningar.se/' eftersom koden ligger på webbhotellet Levonline där jag har flera olika domäner under public_html

Här ligger den fungerande koden som killen knackat ihop: http://abbr.orthogon.se/
Här är den på Levonline http://www.forkortningar.se/

Testar man http://www.forkortningar.se/add.php så visas rätt sida.

Gör jag något annat fel?
- Jag FTP:ar med ws_ftp i ASCII-format.
- Jag Chmod:ar inte om filen.

Jag vet att Rewrite funkar hos Levonline eftersom jag gjort andra Rewrite-tester som funkar.
SajtSnickaren är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-28, 14:36 #5
greenio.se greenio.se är inte uppkopplad
Medlem
 
Reg.datum: May 2009
Inlägg: 106
greenio.se greenio.se är inte uppkopplad
Medlem
 
Reg.datum: May 2009
Inlägg: 106
testade precis det här och det fungerade perfekt

Citat:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?([-a-z0-9_/]*)/?$ $1.php?args=$2 [QSA,L]
Är adressen då http://www.domän.se/test/massa/andra/argument så hamnar man på test.php, och så finns det då en get-variabel som heter args som innehåller allt efter det första snedstrecket. Kan man till exempel köra $args = explode('/',$_GET['args']); i php-filen sen om man vill ha en array med eventuella extra argument.
greenio.se är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-28, 15:09 #6
SajtSnickaren SajtSnickaren är inte uppkopplad
Nykomling
 
Reg.datum: May 2009
Inlägg: 12
SajtSnickaren SajtSnickaren är inte uppkopplad
Nykomling
 
Reg.datum: May 2009
Inlägg: 12
Testade även greenio.se förslag, men får fortfarande:
"You don't have permission to access /add/ on this server."

Det vore ju bra om åtminstone: http://www.forkortningar.se/add/ kunde fungera. Då skulle man kunna gå vidare till nästa steg i felsökningen.
SajtSnickaren är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-28, 19:20 #7
greenio.se greenio.se är inte uppkopplad
Medlem
 
Reg.datum: May 2009
Inlägg: 106
greenio.se greenio.se är inte uppkopplad
Medlem
 
Reg.datum: May 2009
Inlägg: 106
Citat:
Originally posted by SajtSnickaren@May 28 2009, 13:39
Jag vet att Rewrite funkar hos Levonline eftersom jag gjort andra Rewrite-tester som funkar.
Hmm, verkar som mod rewrite inte är på då. Skulle du kunna posta någon fungerande mod rewrite kod som har funkat på samma webbhotell här så kan vi utgå från den? Eftersom själva rewrite-delen är korrekt så är det nåt annat som är fel.
greenio.se är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-28, 22:28 #8
SajtSnickaren SajtSnickaren är inte uppkopplad
Nykomling
 
Reg.datum: May 2009
Inlägg: 12
SajtSnickaren SajtSnickaren är inte uppkopplad
Nykomling
 
Reg.datum: May 2009
Inlägg: 12
Här är ett fungerande exempel --> http://www.forkortningar.se/mime_test/page/software (testa byta ut 'software'):
Kod:
RewriteEngine on
RewriteRule ^page/([^/\.]+)/?$ index.php?page=$1 [L]
Index.php innehåller:
Kod:
<html>
  <head>
   <title>Second mod_rewrite example</title>
  </head>
  <body>
   <p>
     The requested page was:
     <?php echo $_GET['page']; ?>
   </p>
  </body>
</html>
Källa: http://www.workingwith.me.uk/article...ng/mod_rewrite
SajtSnickaren är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-28, 22:40 #9
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Lägg inte .htaccess i public_html utan i public_html/forkortningar.se/

public_html körs troligen inte .htaccess i.
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-28, 22:44 #10
greenio.se greenio.se är inte uppkopplad
Medlem
 
Reg.datum: May 2009
Inlägg: 106
greenio.se greenio.se är inte uppkopplad
Medlem
 
Reg.datum: May 2009
Inlägg: 106
Hmm... det är inte så att de andra exemplen också fungerar i den undermapp du testar i nu?

Jag testade koden från din ursprungliga post också av intresse, och den funkar, klarar bara inte av ett avslutande slash eller några extra argument, men för forkortningar.se/add så ska den funka om mod rewrite funkar.
greenio.se är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 11:14.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017