Pagina laad niet correct zonder https://www Misschien php of htaccess fout?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Furio Scripting

Furio Scripting

17/02/2016 15:40:57
Quote Anchor link
Goedemiddag Forumleden,

Ik heb een router welke de juiste pagina pakt uit een mapje op mijn server. Dit werkt perfect als men de site gebruikt via https://www.... en ook als iemand zonder https en www het domein typt dus bijvoorbeeld: 123gemaakt.nl ipv www.123gemaakt.nl of https://www.123gemaakt.nl Dit werkt perfect maar als men dit typt:

123gemaakt.nl/pagina/offertes-aanvragen dan wordt die redirect naar https://www.123gemaakt.nl/index.php

Weet iemand waarom dit is? Dit is de php code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
function loadContent()
   {

 
              //Remove request parameters:
              list($path) = explode('?', $_SERVER['REQUEST_URI']);
              //Remove script path:
              $path = substr($path, strlen(dirname($_SERVER['SCRIPT_NAME']))+1);
              //Explode path to directories and remove empty items:
              $pathInfo = array();
              foreach (explode('/', $path) as $dir)
              {

                if (!empty($dir))
                {

                    $pathInfo[] = urldecode($dir);
                }
              
              }

            if (count($pathInfo) > 0)
            {

                //Remove file extension from the last element:
                $last = $pathInfo[count($pathInfo)-1];
                list($last) = explode('.', $last);
                $pathInfo[count($pathInfo)-1] = $last;
            }

            

            $content = basename($path);

            if ($content == '')
            {


                include './pagina/home.php';
            }

            
            elseif ($content != '')
            {


 
               $content .= '.php';
               if(file_exists('./pagina/'.$content))
               {

                    include './pagina/'.$content;
               }

               else
               {
              
                    include './pagina/404.php';
               }
              
                
            
            }
          
            
 
   }

?>


En dit is de htaccess code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L,QSA]
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]



# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
 
PHP hulp

PHP hulp

23/12/2024 20:15:23
 
Thomas van den Heuvel

Thomas van den Heuvel

17/02/2016 16:40:29
Quote Anchor link
Dat is toch precies zoals je hebt gedefinieerd?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


Input: 123gemaakt.nl/pagina/offertes-aanvragen
De eerste rewrite rule wordt getriggerd doordat de aanroep zonder https is denk ik?
Dit zorgt voor een externe redirect naar https://123gemaakt.nl/pagina/offertes-aanvragen

Vervolgens wrodt de tweede rewrite rule getriggerd doordat de aanroep zonder www is?
Dit zorgt voor een externe redirect naar https://www.123gemaakt.nl/pagina/offertes-aanvragen

Rewrite condities zijn alleen van toepassing op de direct daaropvolgende rewrite rules als ik mij niet vergis. Voor de leesbaarheid is het misschien handig als je rewritecondities + de daarbij behorende rewrite rule in een aparte "alinea" zet, met hier wat regelovergangen omheen, zodat dit wat leesbaarder wordt en direct duidelijk is wat bij elkaar hoort...

Wat wil je dan dat er precies gebeurt?
Gewijzigd op 17/02/2016 16:43:36 door Thomas van den Heuvel
 
Furio Scripting

Furio Scripting

17/02/2016 18:34:05
Quote Anchor link
Thomas van den Heuvel op 17/02/2016 16:40:29:
Dat is toch precies zoals je hebt gedefinieerd?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


Input: 123gemaakt.nl/pagina/offertes-aanvragen
De eerste rewrite rule wordt getriggerd doordat de aanroep zonder https is denk ik?
Dit zorgt voor een externe redirect naar https://123gemaakt.nl/pagina/offertes-aanvragen

Vervolgens wrodt de tweede rewrite rule getriggerd doordat de aanroep zonder www is?
Dit zorgt voor een externe redirect naar https://www.123gemaakt.nl/pagina/offertes-aanvragen

Rewrite condities zijn alleen van toepassing op de direct daaropvolgende rewrite rules als ik mij niet vergis. Voor de leesbaarheid is het misschien handig als je rewritecondities + de daarbij behorende rewrite rule in een aparte "alinea" zet, met hier wat regelovergangen omheen, zodat dit wat leesbaarder wordt en direct duidelijk is wat bij elkaar hoort...

Wat wil je dan dat er precies gebeurt?


Ik wil graag dat die niet linkt naar https://www.123gemaakt.nl/index.php want dat gebeurd als je zonder https en www een bestaande pagina opvraagt
 
Thomas van den Heuvel

Thomas van den Heuvel

17/02/2016 23:21:38
Quote Anchor link
Je komt echt uit op index.php? Dat ligt dan aan je RewriteRules want in je php code zitten geen redirects lijkt mij.

Comment alles maar eens uit en uncomment dan stap voor stap je RewriteRules + bijbehorende condities, dan zie je vanzelf waar het schip strandt?
 
Ivo P

Ivo P

18/02/2016 10:20:01
Quote Anchor link
wat voegen de regels 2 tm 4 van je htaccess eigenlijk toe?

Dat staat in feite ook op regel 17 en verder.

Daarnaast lijkt me regel 16 overbodig: "als het is /index.php, dan doe niets"

Dat zou ook gevangen moeten worden in de RewriteCond "als het een bestaande file is" op regel 17 (aangenomen dat index.php aanwezig is.

Maar begin eens met regel 2/4 te verwijderen.
 
Furio Scripting

Furio Scripting

23/02/2016 14:16:16
Quote Anchor link
Thanks! Door regel 2-4 te verwijderen werkt alles zoals het zou moeten.

Bedankt voor jullie hulp!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.