.htaccess Uitzondering toevoegen

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Harrie_
  • Registratie: Juli 2003
  • Niet online

Harrie_

⠀                  🔴 🔴 🔴 🔴 🔴

Topicstarter
Ik ben al uren aan het testen met een .htaccess bestand. Dit is een bestaande .htaccess van een website die door een ander is gemaakt/geconfigureerd.

Onderstaand de code waarbij in feite elke request naar example.com/org/net/nl/de/etc. wordt gerouteerd naar https://example.nl. Ik probeer nu voor elkaar te krijgen dat er een uitzondering bestaat voor een 'specificfolder', m.a.w. wanneer eer een aanroep plaatsvind naar /specificfolder wil ik uitkomen op https://example.nl/specificfolder, maar wat ik ook probeer ik krijg het niet voor elkaar.

Ik heb al op verschillende plekken geprobeerd om aparte rewriterule toe te voegen bij een regel 'RewriteCond %{REQUEST_FILENAME} !-d' om de 'specificfolder' af te vangen. Nu vind ik sowieso .htaccess altijd moeilijk te volgen (maar dan kan ook aan mijn kwaliteiten liggen). Ik snap de samenhang niet zo goed tussen de verschillende blokken conditions en rules. Kan iemand me op weg helpen?

Ter aanvulling: als ik bijvoorbeeld het blok wat '/assets' afhandelt (regel 47) kopieer en verander naar /specificfolder dan krijg ik niet het resultaat wat ik verwacht. Bij een aanroep naar example.nl/assets kom ik gewoon in die map uit, een aanroep naar example.nl/specificfolder routeert me gewoon naar example.nl?

Update Ik kom er zojuist achter dat wanneer ik het codeblok van /assets kopieer en vervang door /specificfolder het wel werkt maar ènkel en alleen wanneer ik /specificfolder/index.php aanroep. Wanneer ik /specificfolder/subfolder aanroep wordt wel gewoon automatisch index.php in die subfolder aangeroepen. Wat gaat hier mis :?


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^example\.com       [NC]
RewriteRule (.*) https://example.nl/en/$1    [R=301,L] 
RewriteCond %{HTTP_HOST} ^www\.example\.com  [NC]
RewriteRule (.*) https://example.nl/en/$1    [R=301,L] 
RewriteCond %{HTTP_HOST} ^example\.de        [NC]
RewriteRule (.*) https://example.nl/en/$1    [R=301,L] 
RewriteCond %{HTTP_HOST} ^www\.example\.de   [NC]
RewriteRule (.*) https://example.nl/en/$1    [R=301,L] 
RewriteCond %{HTTP_HOST} ^example\.fr        [NC]
RewriteRule (.*) https://example.nl/en/$1    [R=301,L] 
RewriteCond %{HTTP_HOST} ^www\.example\.fr   [NC]
RewriteRule (.*) https://example.nl/en/$1    [R=301,L] 
RewriteCond %{HTTP_HOST} ^example\.it        [NC]
RewriteRule (.*) https://example.nl/en/$1    [R=301,L] 
RewriteCond %{HTTP_HOST} ^www\.example\.it   [NC]
RewriteRule (.*) https://example.nl/en/$1    [R=301,L] 
RewriteCond %{HTTP_HOST} ^example\.net       [NC]
RewriteRule (.*) https://example.nl/en/$1    [R=301,L] 
RewriteCond %{HTTP_HOST} ^www\.example\.net  [NC]
RewriteRule (.*) https://example.nl/en/$1    [R=301,L] 
RewriteCond %{HTTP_HOST} ^example\.org       [NC]
RewriteRule (.*) https://example.nl/en/$1    [R=301,L] 
RewriteCond %{HTTP_HOST} ^www\.example\.org  [NC]
RewriteRule (.*) https://example.nl/en/$1    [R=301,L]

RewriteCond %{HTTP_HOST} ^www\.example\.nl [NC]
RewriteRule (.*) https://example.nl/$1 [R=301,L]

# Rewrite www.domain.com -> domain.com -- used with SEO Strict URLs plugin 
# RewriteCond %{HTTP_HOST} .
#RewriteCond %{HTTP_HOST} !^example\.nl [NC]
#RewriteRule (.*) http://example.nl/$1 [R=301,L]

# Rewrite secure requests properly to prevent SSL cert warnings, e.g. prevent 
# https://www.domain.com when your cert only allows https://secure.domain.com
RewriteCond %{SERVER_PORT} !^443
RewriteRule (.*) https://example.nl/$1 [R=301,L]

# redirect all requests to /de/favicon.ico and /nl/favicon.ico to /favicon.ico
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(nl|en|de|com|net|it|fr|org)/favicon.ico$ favicon.ico 

# redirect all requests to /de/assets* and /nl/assets* to /assets*
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(nl|en|de|com|net|it|fr|org)/assets(.*)$ assets$2 [L,QSA]
 
# redirect all other requests to /de/* and /nl/* to index.php and set key
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(nl|en|de|com|net|it|fr|org)/?(.*)$ index.php?key=$1&q=$2 [L,QSA]

# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

[ Voor 8% gewijzigd door Harrie_ op 29-01-2018 14:43 ]

Hoeder van het Noord-Meierijse dialect


Acties:
  • 0 Henk 'm!

  • Hiroj
  • Registratie: Mei 2010
  • Laatst online: 04-09 14:23
Probeer het onderstaande eens:

code:
1
2
3
4
RewriteCond %{HTTP_HOST} ^example\.com       [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) https://example.nl/en/$1    [R=301,L]


En dit dan per domein die je doorverwijst naar je .nl met een subdir

Acties:
  • 0 Henk 'm!

  • Harrie_
  • Registratie: Juli 2003
  • Niet online

Harrie_

⠀                  🔴 🔴 🔴 🔴 🔴

Topicstarter
@Hiroj sorry ik kan echt niet helemaal volgen wat je precies bedoelt? Alle domeindoorverwijzigen moeten behouden blijven maar hier hoef ik zeker niet aan te komen. Ik hoef alleen maar een uitzondering te hebben op .nl

Alle aanroepen naar
http://example.nl/*
https://www.example.nl/*
http://www.example.nl/*
Worden doorverwezen naar
https://example.nl

Deze regel wil ik in stand houden maar daar enkel de /specificfolder-uitzondering aan toevoegen...
Ik heb al op diverse plekken geprobeerd om een uitzonderingsregel toe te voegen maar dit heeft tot dusver tot geen resultaten geleid:
code:
1
RewriteCond %{REQUEST_URI} !^/specificfolder

Hoeder van het Noord-Meierijse dialect


Acties:
  • +1 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
kijk hier eens naar
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{HTTP_HOST} !^example\.nl [NC]
RewriteRule .* https://example.nl%{REQUEST_URI} [L,R=301]

RewriteCond %{HTTP_HOST} example\.com      [NC,OR]
RewriteCond %{HTTP_HOST} example\.net      [NC,OR]
RewriteCond %{HTTP_HOST} example\.org      [NC]
RewriteRule (.*) https://example.nl/en/$1  [R=301,L] 

RewriteCond %{HTTP_HOST} example\.de       [NC]
RewriteRule (.*) https://example.nl/de/$1  [R=301,L] 

RewriteCond %{HTTP_HOST} example\.fr       [NC]
RewriteRule (.*) https://example.nl/fr/$1  [R=301,L] 

RewriteCond %{HTTP_HOST} example\.it       [NC]
RewriteRule (.*) https://example.nl/it/$1  [R=301,L] 

RewriteCond %{SERVER_PORT} !^443           [OR]
RewriteCond %{HTTP_HOST} !^example\.nl     [NC]
RewriteRule (.*) https://example.nl/$1     [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [L]

# redirect all other requests to /de/* and /nl/* to index.php and set key
RewriteRule ^(nl|en|de|com|net|it|fr|org)/?(.*)$ index.php?key=$1&q=$2 [L,QSA]

# The Friendly URLs part
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Maak je niet druk, dat doet de compressor maar


Acties:
  • 0 Henk 'm!

  • Harrie_
  • Registratie: Juli 2003
  • Niet online

Harrie_

⠀                  🔴 🔴 🔴 🔴 🔴

Topicstarter
@DJMaze Sowieso goed dat alles lekker staat samen gevat i.p.v. voor elke TLD aparte regels. Op zich werkt dit prima echter alle /subfolders krijgen nu doorgang, terwijl het juist de bedoeling is dat alles geredirect wordt naar https://example.nl met uitzondering van (de reeds bestaande) /assets/ en een nieuw toe te voegen /specificfolder.

Ik heb nu geprobeerd om bovenaan toe te voegen
code:
1
RewriteCond %{THE_REQUEST} !/(assets|specificfolder) [NC]


Maar ook dat heeft niet het gewenste resultaat. Ik kan zo nog steeds allerlei subfolders aan die niet toegankelijk moeten zijn. Wat een ellende, ik voel me zo dom.

Hoeder van het Noord-Meierijse dialect


Acties:
  • 0 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
@Harrie_ wat wil je nou precies?
Harrie_ schreef op dinsdag 30 januari 2018 @ 09:44:
Ik kan zo nog steeds allerlei subfolders aan die niet toegankelijk moeten zijn.
/assets => FORBIDDEN???
Harrie_ schreef op dinsdag 30 januari 2018 @ 09:44:
Op zich werkt dit prima echter alle /subfolders krijgen nu doorgang, terwijl het juist de bedoeling is dat alles geredirect wordt naar https://example.nl met uitzondering van (de reeds bestaande) /assets/ en een nieuw toe te voegen /specificfolder.
/assets => niet redirect naar example.nl???

Maak je niet druk, dat doet de compressor maar


Acties:
  • 0 Henk 'm!

  • Harrie_
  • Registratie: Juli 2003
  • Niet online

Harrie_

⠀                  🔴 🔴 🔴 🔴 🔴

Topicstarter
d:)b Sowiesie bedankt voor de hulp @DJMaze

Ik weet zelf ook niet zo goed wat ik wil :/ Die draak van een .htaccess in mijn originele post komt van een externe partij af (die daar in de toekomst ook het beheer op voeren) dus daar wil ik niet teveel aan rommelen. Ik wil alleen een uitzondering toevoegen dat

example.nl/specificfolder (met of zonder ssl) uitkomt op https://example.nl/specificfolder(/index.php) en niet geredirect wordt naar https://example.nl of https://example.nl/en/ oid :?

[ Voor 11% gewijzigd door Harrie_ op 30-01-2018 12:27 ]

Hoeder van het Noord-Meierijse dialect


Acties:
  • +1 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
code:
1
2
3
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{HTTP_HOST} !^example\.nl [NC]
RewriteRule .* https://example.nl%{REQUEST_URI} [L,R=301]

Dit betekent:
- bestand bestaat [EN]
- NIET example.nl
- redirect naar example.nl/../././bestand & stop rewrite

Oftewel:
example.org/specificfolder/bestand.jpg => example.nl/specificfolder/bestand.jpg
example.org/index.php => example.nl/index.php
www.example.nl/assets/bestand.jpg => example.nl/assets/bestand.jpg




code:
1
2
3
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [L]

Dit betekent:
- bestand bestaat [OF]
- directory bestaat
- stop rewrite




code:
1
RewriteRule ^specificfolder(/.*)?$ /specificfolder/index.php [L,QSA]


Ik denk dat je er nu wel uitkomt om het zelf te maken.

[ Voor 6% gewijzigd door DJMaze op 30-01-2018 14:21 ]

Maak je niet druk, dat doet de compressor maar


Acties:
  • 0 Henk 'm!

  • Compagnon
  • Registratie: November 2017
  • Laatst online: 06-12-2023
DJMaze schreef op dinsdag 30 januari 2018 @ 11:05:
@Harrie_ wat wil je nou precies?
/assets => niet redirect naar example.nl???
nee

Acties:
  • 0 Henk 'm!

  • Harrie_
  • Registratie: Juli 2003
  • Niet online

Harrie_

⠀                  🔴 🔴 🔴 🔴 🔴

Topicstarter
@DJMaze duizendmaal dank! Dit is niet de eerste keer dat ik met .htaccess te maken heb maar ik blijf het altijd moeilijke materie vinden. Ik heb al ontdekt dat ik het probleem moet zoeken in de volgorde, ik was me niet bewust van de 'stop rewrite'.

Verder weet ik niet wat @Compagnon bedoelt, maar ik denk dat ik er zo wel uitkom. _/-\o_

Hoeder van het Noord-Meierijse dialect


Acties:
  • 0 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
@Harrie_ Compagnon bedoelt niks, als je even in zijn post historie kijkt heeft hij bijna nooit iets nuttigs te vertellen over het onderwerp ;)

[ Voor 6% gewijzigd door DJMaze op 30-01-2018 17:46 ]

Maak je niet druk, dat doet de compressor maar


Acties:
  • 0 Henk 'm!

  • Tsjilp
  • Registratie: November 2002
  • Niet online

Tsjilp

RS[I]ds

@Harrie_ Nog een handig tooltje wat ik regelmatig gebruik: https://htaccess.madewithlove.be/

Kun je precies zien welke rules matchen en welke niet.

Raar... Is zo gek nog niet

Pagina: 1