PHP en .htaccess geen foutpagina

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Evgeny Guridze

Evgeny Guridze

13/06/2016 11:31:07
Quote Anchor link
Goedendag,

Heb na jaren lang aan ontwikkeling een cms systeem eindelijk afgekregen
Het ziet er vervolgens zo in elkaar

het pagina structuur was seo onvriendelijk

pagina.php?PageId=222 -

na rond neuzen is 't mij eindelijk gelukt om het seo vriendelijk te maken

eerste was het www.[websitenaam].nl/nl/Pagina/Over-ons

daarna vond ik 't URL TE lang heb ik 't "Pagina" weg gehaald en zag het er zo er uit "website.nl/nl/Over-ons"

maar het probleem is

als er in het url foute pagina getypt wordt krijg je geen foute pagina tevoorschijn terwijl het bij het instelling in het htacces voor website.nl/nl/Pagina/Over-ons wel verscheen

htaccess bestand ziet er zo eruit

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
AddCharset UTF-8 .html
AddDefaultCharset UTF-8
AddType 'text/html; charset=UTF-8' html
AddType application/x-httpd-php .php .htm .html

Options +FollowSymLinks
RewriteEngine on
#rewritebase /

RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule !.*\.html$ %{REQUEST_FILENAME}.html [L]

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.html$ %{REQUEST_FILENAME}.php [L]

RewriteEngine On
RewriteRule    ^([A-Za-z0-9-]+)/?$ test-pagina.php?PageId=$1

RewriteEngine On
RewriteRule    ^([A-Za-z0-9-]+)?$ test-pagina.php?PageId=$1

RewriteEngine On
RewriteRule ^/([a-zA-Z0-9_-]+) test-pagina.php?PageId=$1

RewriteEngine On
RewriteRule ^Berichten/([0-9]+)/([a-zA-Z0-9_-]+) Berichten.php?PageId=$1


waar kan het fout aan liggen?

Ward:
Titel en [code][/code]-tags aangepast.
Gewijzigd op 13/06/2016 11:38:40 door Ward van der Put
 
PHP hulp

PHP hulp

26/12/2024 08:53:03
 
Ward van der Put
Moderator

Ward van der Put

13/06/2016 11:42:28
Quote Anchor link
Je hoeft maar één keer RewriteEngine On te gebruiken om de rewrite engine in te schakelen.

Waar je nu RewriteEngine On herhaalt, lijkt een RewriteCond te ontbreken. Na een rewrite-conditie (RewriteCond) hoort een rewrite-regel (RewriteRule) te volgen: als aan een conditie wordt voldaan, wordt de bijbehorende regel uitgevoerd.
 
Evgeny Guridze

Evgeny Guridze

13/06/2016 11:46:40
Quote Anchor link
Hallo Ward, Bedankt voor je reactie!

dus zo iets?

RewriteEngine on
RewriteCond %{HTTP_HOST} ^website/.nl$ [NC]
RewriteRule ^(.*)$ https://www.website.nl/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.html$ http://www.website.nl/$1 [R=301,L]
 
Ward van der Put
Moderator

Ward van der Put

13/06/2016 11:52:36
Quote Anchor link
Ja, dat is al beter.

Als aan geen enkele conditie wordt voldaan, kun je aan het einde tot slot de 404 Not Found afhandelen. Dat wordt dan de laatste RewriteCond. Wat we daarmee in de praktijk vaak doen, is die afhandelen met de hoofdapplicatie /index.php, de "front controller" van je site.
 
Thomas van den Heuvel

Thomas van den Heuvel

13/06/2016 13:53:42
Quote Anchor link
Vervolgens rekent deze front controller (de "single point of entry" in je applicatie) op grond van de REQUEST_URI (direct of indirect) uit welke pagina geserveerd dient te worden. De uitkomst van die rekensom kan ook zijn dat de pagina niet bestaat of dat je deze vanwege rechten niet mag/kan zien. In beide gevallen zou je dan een 404 pagina kunnen serveren.
 



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.