webForumDet fria alternativet

HTACCESS - en simpel liten fråga

Webbservrar

18 svar · 1 162 visningar · startad av learn

Medlem sedan jan. 20051 130 inlägg
Frågan#1

Om min url innehåller "spec" så ska endast den första RewriteRule köras. Alltså ska den andra då ignoreras.

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^spec$ ?spec

RewriteRule ^([a-zA-Z0-9\_\-\/]*)/?$ start.php

Hur gör jag?

Medlem sedan jan. 20051 130 inlägg
#2

Själv tycker jag följande borde funka:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^spec$ ?spec [S=1]

RewriteRule ^([a-zA-Z0-9\_\-\/]*)/?$ start.php

Alltså att lägga till efter den första RewriteRule. Men det gör ingen skillnad... Hmmmmmm! :q

Medlem sedan jan. 20051 130 inlägg
#3

Finns det något sätt jag kan göra detta på?

Jag förstår inte varför inte fungerar... Kan det ha att göra med php-vesion eller liknande?

Medlem sedan jan. 20051 130 inlägg
#4

Ingen här på wF som arbetat med .HTACCESS-filen och har lust att hjälpa mig?

Medlem sedan juni 20014 421 inlägg
#5

Provat att kasta in en [L]

Medlem sedan juni 20014 290 inlägg
#6

Har du provat med [L] ?

Medlem sedan jan. 20051 130 inlägg
#7

colione skrev:

Provat att kasta in en [L]

GunnarD skrev:

Har du provat med [L] ?

Jäpp och det gör ingen skillnad heller. Den kör den andra RewriteRule ändå! :q :q

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^spec$ ?spec [L]

RewriteRule ^([a-zA-Z0-9\_\-\/]*)/?$ start.php
Medlem sedan juni 20014 421 inlägg
#8

Då känns det som den första regeln är felskriven. Vad exakt vill du åstadkomma?

Medlem sedan jan. 20051 130 inlägg
#9

colione skrev:

Då känns det som den första regeln är felskriven. Vad exakt vill du åstadkomma?

Jag vill att alla som går in på https://www.minsida.se/spec "skickas" till https://www.minsida.se/?spec. "Skickas" kanske inte är den bästa formuleringen, vad jag menar är att den faktiska URLen är /?spec, men det ser snyggare ut för besökaren med /spec... :)

R: Grejen är att reglerna fungerar galant var och en för sig, men tillsammans så...

Medlem sedan jan. 20051 130 inlägg
#10

Någon? Går det verkligen inte att ha två RewriteRule efter varandra utan att man alltid måste köra båda?

Blir väl så att jag får skriva ihop ngt fulhack...

Tycker det hela är mkt märkligt! :(

Medlem sedan juni 20014 290 inlägg
#11

[L] innebär att om den regeln körs så stoppar den annars kör den nästa, vilket tyder på att den är något fel i regeln.

Prova att slå på loggning för att se vad som händer (RewriteLog och RewriteLogLevel)

Medlem sedan jan. 20051 130 inlägg
#12

OK, hur exakt gör jag då. Vart ska jag lägga in RewriteLog och RewriteLogLevel? Gärna exempel.

Medlem sedan jan. 20051 130 inlägg
#13

Eller ännu bättre: Hur skulle ni skriva för att lösa mitt problem?

Jag vill helt enkelt att alla URLer ska "skickas" till start.php. Med undantaget att minsida.se/spec ska bli minsida.se/?spec.

Ni får ursäkta min dåliga beskrivning... Se även mina tidigare inlägg ;)

Tack på förhand!

Medlem sedan juni 20014 290 inlägg
#14

learn skrev:

OK, hur exakt gör jag då. Vart ska jag lägga in RewriteLog och RewriteLogLevel? Gärna exempel.

Har du läst dokumentationen om mod_rewrite?

ex: http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritelog

Medlem sedan juni 20014 421 inlägg
#15
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^spec$ /?spec [R,L]

RewriteRule ^([a-zA-Z0-9\_\-\/]*)/?$ start.php
Medlem sedan feb. 20034 441 inlägg
#16

Tjena,
Jag sitter óch försöker få ordning på htaccess, har följt Apacheconfen, men får det inte att funka.
På en hemsida jag gjort finns fem under sidor, låt kalla som för sida1.php, sida2.php, sida3.php osv.

Det jag vill göra är att "snygga till" det lite, så att det istället står "http://www.domän.com/sida1/".

Det här känns som om det är väldigt lätt, men får det inte att funka alls.
Någon som vet om Loopia tillåter egna htaccess på deras Unixservrar?

Tack!

Medlem sedan juni 20014 421 inlägg
#17

mod_rewrite är overkill för det. Förutsatt att sidan inte kommer öka markant i antalet undersidor.

Kolla på forcetype:
http://httpd.apache.org/docs/2.0/mod/core.html#forcetype

<FilesMatch "sida\d*">
ForceType application/x-httpd-php
</FilesMatch>

Matchar sidanummer
Men då måste du tabort .php från namnet.

Om det bara är php-sidor i mappen kan du köra såhär:

<FilesMatch ".*">
ForceType application/x-httpd-php
</FilesMatch>

Matchar allting i mappen och skickar det som en php-fil. Då är det alltså också bara att tabort .php från filerna.

Vill du inte ändra så kan du göra en lite mer avancerad koll via mod_rewrite:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.php [L]
Medlem sedan feb. 20034 441 inlägg
#18

Okej, tack!
Nu använde jag mig av din varianten längst ner i ditt inlägg.
Funkar fint, men jag får inte med det avslutande "/" som jag vill.
Såhär ser min .htaccess ut:

Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.php [L]

Vad ska till, för att få med ett avslutande "/".

En till sak, nu heter "startsidan" index.php, kan jag med htaccess ange att det istället ska stå "/welcome/", när man går in på hemsidan?

Tack!

Medlem sedan feb. 20034 441 inlägg
#19

Går det att ordna ett avslutande "/" utifrån koden ovan?

251 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)