Avatar billede 13thsky Nybegynder
14. september 2014 - 19:51 Der er 23 kommentarer

En htaccess rewrite opgave

Mine kategorier på min webshop tilgåes med følgende url:

http://wayfarer-solbriller.dk/?page=category&cat=wayfarer

Jeg vil gerne ændre min htaccess fil således at ovenstående omskrives til:

http://wayfarer-solbriller.dk/wayfarer
Avatar billede jakobdo Ekspert
15. september 2014 - 12:04 #1
Må jeg ikke forslå:

http://wayfarer-solbriller.dk/category/wayfarer

Det burde du kunne opnå med denne:

RewriteEngine On
RewriteRule ^category/(.+)/$ index.php?page=category&cat=$1

Dette er utestet.
Avatar billede 13thsky Nybegynder
16. september 2014 - 01:08 #2
Hej Jakobdo

1000 tak for at du vil hjælpe mig.
Det virker dog ikke helt. Jeg har tilføjet linjen til min htaccess, men prøv at se:

http://wayfarer-solbriller.dk/?page=product&pro=1&cat=wayfarer
skulle være det samme som:
http://wayfarer-solbriller.dk/category/wayfarer

Jeg håber virkelig du vil hjælpe mig. Jeg vil gerne smide flere point i...

Pfh. tak.
Kristian
Avatar billede 13thsky Nybegynder
16. september 2014 - 01:09 #3
Avatar billede jakobdo Ekspert
16. september 2014 - 14:41 #4
Du skal gøre 2 ting:

Ret lige htaccess til:

RewriteEngine On
RewriteRule ^category/(.+)/?$ index.php?page=category&cat=$1

Og så skal du rette dine js og css "stier" fra:

js/...
css/...

til:

/js/...
/css/...

Så burde det virke.
Avatar billede 13thsky Nybegynder
16. september 2014 - 16:17 #5
Lækkert.... FEDT!

Kan man også gøre sådan at brugerne automatisk får vist den nye url i adresselinjen når de kommer ind fra f.eks.:
http://wayfarer-solbriller.dk/?page=category&cat=wayfarer

Altså en som automatisk ændrer:

http://wayfarer-solbriller.dk/?page=x&cat=y

til

http://wayfarer-solbriller.dk/x/y
Avatar billede 13thsky Nybegynder
16. september 2014 - 16:17 #6
Jeg giver gerne endnu flere point :)
Avatar billede 13thsky Nybegynder
16. september 2014 - 22:03 #7
Og forresten Jacobdo, jeg vil faktisk gerne have /category væk. Jeg kan nemlig se at der er problemer når jeg f.eks. vil se mine vilkaar på wayfarer-solbriller.dk/vilkaar - som normalt er tilgængelige via http://wayfarer-solbriller.dk/index.php?page=vilkaar

Alt i alt vil jeg gerne at parameteteren ?page og parameteren ?cat omskrives til subfolders.

Således at:
http://wayfarer-solbriller.dk/?page=x&cat=y
bliver til:
http://wayfarer-solbriller.dk/x/y

Og så var der lige det med om brugerne automatisk bliver sendt til den nye adresse?

Jeg håber meget du har tid til at hjælpe mig.

Jeg vil gerne give dig 300 point for hjælpen.

Kristian
Avatar billede jakobdo Ekspert
16. september 2014 - 22:08 #8
Det med dine "links" skal være "omskrevet" det skal du jo bare gøre i din kode.

Og det med /x/y/ skal laves til: page=x&cat=y, kan du lave sådan:

Er dog utestet.
SÅ er lidt usikker på om den vil være for grådig eller ej. Men test den.
RewriteRule ^(.+)/(.+)/?$ index.php?page=$1&cat=$2
Avatar billede 13thsky Nybegynder
16. september 2014 - 22:23 #9
Hej igen

Det virker ikke. Det ser ud til at den ikke kender stierne til /js/ eller /css/ når jeg smider den kode på. Har du nogen ideer?

K
Avatar billede 13thsky Nybegynder
16. september 2014 - 22:24 #10
Ej heller js/.. og css/..
Avatar billede jakobdo Ekspert
16. september 2014 - 23:05 #11
Prøv lige denne:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)/(.+)/?$ index.php?page=$1&cat=$2
Avatar billede jakobdo Ekspert
16. september 2014 - 23:08 #12
Måske den sidste linje skal være:

RewriteRule ^([^/]+)/([^/]+)$ index.php?page=$1&cat=$2 [L]
Avatar billede 13thsky Nybegynder
16. september 2014 - 23:44 #13
Avatar billede 13thsky Nybegynder
16. september 2014 - 23:57 #14
Og når jeg nu er i gang kunne det være fedt hvis 404 fangede de sider der ikke eksisterer. F.eks. hvis der skrives wayfarer-solbriller/nejnej

Jeg håber ikke du synes jeg er meget krævende og jeg ved at jeg har mange spgi denne tråd. Jeg lover at smide de point du ønsker.

Pfh.
Kristian
Avatar billede jakobdo Ekspert
17. september 2014 - 06:59 #15
Hvis du lægger mærke til denne:
http://wayfarer-solbriller.dk/vilkaar

Så matcher den jo heller ikke:
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?page=$1&cat=$2 [L]

Men det kan evt. klares med du smider denne på også:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ index.php?page=$1 [L]
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?page=$1&cat=$2 [L]
Avatar billede 13thsky Nybegynder
17. september 2014 - 09:42 #16
Hmmm, den virker ikke. Den fucker forsiden op igen så den ikke kan finde mine css og js.
Andre bud?
Avatar billede jakobdo Ekspert
17. september 2014 - 10:10 #17
Avatar billede jakobdo Ekspert
17. september 2014 - 10:13 #18
Ang. 404, kan du smide denne fil i din .htaccess fil:

ErrorDocument 404 /index.php

index.php er så den fil, der vil blive kaldt, hvis siden ikke findes.
Avatar billede 13thsky Nybegynder
17. september 2014 - 10:49 #19
Ja, den ser fin ud nu. Men det er når jeg tilføjer denne:

RewriteRule ^([^/]+)/?$ index.php?page=$1 [L]

- at siden går helt galt.
Avatar billede jakobdo Ekspert
17. september 2014 - 10:54 #20
Hvordan ser hele din htaccess fil ud nu ?
Avatar billede 13thsky Nybegynder
17. september 2014 - 10:56 #21
Lige nu:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?page=$1&cat=$2 [L]
ErrorDocument 404 /index.php?page=404
Avatar billede jakobdo Ekspert
17. september 2014 - 11:01 #22
Prøv lige:

ErrorDocument 404 /index.php?page=404

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ index.php?page=$1 [L]
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?page=$1&cat=$2 [L]

og skriv når den ser sådan ud, så jeg kan se output.
Avatar billede 13thsky Nybegynder
17. september 2014 - 11:18 #23
Nej, virker ikke. js og css links i View Source virker ikke.
Jeg har fjernet denne linje:
RewriteRule ^([^/]+)/?$ index.php?page=$1 [L]

- og så virker det igen.

?
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

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