FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Flitig postare
|
Efter att ha trilskats en del med mod_rewrite har jag nästan fått till det som jag vill ha det.
Så här ser min .htaccess ut: Options +FollowSymlinks RewriteEngine on RewriteCond %{REQUEST_URI} !^(.*)\.(.*)$ RewriteCond %{REQUEST_URI} !^(.*)/$ RewriteRule ^(.*)$ %{REQUEST_URI}.php Detta leder till att jag kan använda urls utan filändelse, "hej" läser innehållet från "hej.php". Några smärre saker återstår att årgärda: 1. Om man skriver "katalognamn", så försöker den hitta katalognamn.php. Den borde även kolla om katalogen "katalognamn" finns. 2. Det hade varit trevligt om man kunde ställa in nån sorts rangordning så att den först kollar om "hej.php" finns, sen om "hej.htm" finns o.s.v om man anger "hej" utan filändelse.. Hur gör man det? 3. Finns det något problem med det här jag inte tänkt på? |
|||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Mycket flitig postare
|
Jag har svårt att tro att det ska gå om man inte anger / (slash) efter url:en ifall det är en mapp man ska till. Ett alternativ kan vu vara att göra egna regler för dina mappar, rör det sig inte om en massa mappar är ju detta inte så farligt att göra manuellt.
|
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Flitig postare
|
Okej, ja det är inte så viktigt det där med att kunna skriva urls till mappar utan / i och för sig. Fast jag tror Loopia har det så. Deras servrar tror jag också automatiskt kollar efter rätt filändelse.
|
|||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Supermoderator
|
bara jag som tycker det är bättre att peka allting på index.php och låta index.php infoga de filer som behövs? Du får mer kontroll på det och allting osm du vill komma åt går att fixa. Men det kanske innebär mycket jobb.
|
|||
![]() |
![]() |
![]() |
#5 | |||
|
||||
Flitig postare
|
Fredrik, jag vet inte hur man åstadkommer det du pratar om. Har inte programmerat nån php att tala om, men använder includes och lite småscript jag hittat lite varstans. Kanske nåt man borde kolla på. Fast jag börjar bli lite trött på att krångla med det tekniska, vill ju komma igång snart :-)
|
|||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Klarade millennium-buggen
|
Varför inte döpa katalogerna till <katalog>.php istället?
![]() |
||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Klarade millennium-buggen
|
Du kan kolla om en katalog finns genom att använda flaggan -d till RewriteCond (eller fil med -f).
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} -d eller liknande. |
||
![]() |
![]() |
![]() |
#8 | |||
|
||||
Flitig postare
|
Hehe, njaaaa Jonas.. Fasen, känns som en imperfekt lösning det här med mod_rewrite ändå.. Kanske lika bra att köra med vanliga .php i urlsen så vet man i alla fall vad man får även om det också är imperfekt. Vad är era preferenser, föredrar ni att ha med eller utan filnamn?
Edit: Grazzy, det där verkar intressant! Letade lite efter nåt sånt igår i den där mod_rewritemanualen men missade det. Man vill ju helst att den i första hand ska ta en fil med samma namn som katalogen om det finns. Det kan man tydligen kolla med '-f'. Undrar om det funkar när filen i själva verket har en .php filändelse.. Men det märker man väl. Det som återstår då förutom detta är väl att kunna ha alternativa filändelser om det inte skulle finnas en .php, t.ex .htm eller vad som. |
|||
![]() |
![]() |
![]() |
#9 | |||
|
||||
Flitig postare
|
Förresten.. Det borde ju vara bäst att köra ett Rewritecond som kollar om %{REQUEST_URI}.php är en fil (Eller om man var tvungen att lägga till document_root framför som du skrev Grazzy) och i såna fall ska urlen rewritas till %{REQUEST_URL}.php
Om detta funkar måste det ju vara den bästa lösningen och då är det också enkelt att lägga till samma sak för andra filändelser. Känns inte som att det borde bli några oväntade negativa konsekvenser av detta. |
|||
![]() |
![]() |
![]() |
#10 | |||
|
||||
Flitig postare
|
Det verkar funka med detta:
Options +FollowSymlinks RewriteEngine on RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}.php -f RewriteRule ^(.*)$ %{REQUEST_URI}.php Vill jag att den även ska kolla andra filändelser behöver jag bara kopiera de två sista raderna och byta .php mot nåt annat. Jag känner mig som en leet haxxor. Om det är nåt jag inte tänkt på så att detta inte är nån bra lösning så säg till. En annan sak jag funderade på.. Om ett webhotell har register_globals "off", kan man fortfarande komma åt variablerna DOCUMENT_ROOT m.fl. i htaccess utan att ändra nåt? Man borde väl kunna det antar jag eftersom register_globals ligger i phpcore och inte har nåt med servern att göra direkt. Man har typ alltid tillgång till dessa variabler i htaccess antar jag om webbhotellet överhuvudtaget tillåter ändringar i htaccess? Eventuellt borde man göra nån rewrite så att om nån skriver in .php så borde han bli redirectat till filnamnet utan .php. Det är ju aldrig bra att ha samma innehåll på 2 olika urls om man tänker på SEO. Fast det är ju inget problem att göra det.. |
|||
![]() |
![]() |
Svara |
|
|