Slashes in .htaccess
Adding or removing a trailing slash to all URLs
www.website.nl/ledenlijst/
ik heb dus een 301 redirect nodig..
Gewijzigd op 01/03/2018 12:35:53 door Ward van der Put
RewriteCond %{REQUEST_URI} !\.[^./]+$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.domain.co.uk/$1/ [R=301,L]
Alleen werkt het niet
www.website.nl/ledenlijst/ werkt wel
www.website.nl/ledenlijst werkt niet..
Toevoeging op 01/03/2018 13:38:51:
Ik heb het volgende staan in mijn htacces
RewriteEngine On
RewriteCond %{HTTP_HOST} ^website\.nl [NC]
RewriteRule ^(.*)$ http://www.website.nl/$1 [L,R=301]
RewriteCond %{REQUEST_URI} !\.[^./]+$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.website.nl/$1/ [R=301,L]
Wat gebeurt er normaal als een URL niet bestaat? Dan krijg je een foutmelding dat de pagina niet bestaat (404). Waarom zou dat hier anders moeten zijn?
Als dit vanwege zoekmachinestatistieken is, dat je niet aparte charts wilt voor /pagina (zonder slash) en /pagina/ (met slash) ofzo, laat gewoon het request wat niets oplevert een 404 pagina serveren?
Als dit vanwege gebruikersgemak is (al kan ik mij niet voorstellen hoe het handmatig inkloppen van wat in wezen een verkeerde URL is handig is): accepteer gewoon beide, serveer met /pagina of /pagina/ gewoon dezelfde pagina. Maar misschien is dat een minder goede oplossing.
Een URL is goed of fout. Ik zou verkeerde URL's niet proberen te repareren.
Ik snap wat je bedoelt nu levert het al een 404 pagina op daar wil ik juist vanaf..
RewriteRule ^pagina/?$ pagina.php [L]
www.website.nl/pagina en www.website.nl/pagina/ verwijzen naar www.website.nl/pagina.php
Mike Visser op 01/03/2018 17:21:31:
Ik snap wat je bedoelt nu levert het al een 404 pagina op daar wil ik juist vanaf..
Maar hoe kom je dan in eerste instantie op zo'n pagina terecht? Als je dat kunt voorkomen loop je in eerste instantie niet tegen dit probleem aan?
Toevoeging op 01/03/2018 19:36:38:
Michael bedankt voor je reactie maar zo ver was ik ook al alleen eindigen op .php is niet echt seo vriendelijk al mijn urls zijn nu bijv.
www.website.nl/pagina/
www.website.nl/registreren/
www.website.nl/inloggen/
www.website.nl/info/
Als men dan bijv de url ergens ziet staan en alleen www.website.nl/pagina knipt en plakt komen ze op een 404 error uit dat is natuurlijk niet netjes ...
Als je er eerste bedoeld, dan kanje met dit in je .htaccess een 404 pagina maken:
Verder heb je ook 401 Not Authorized, 403 No Access, 500 Internal Server Error
Gewijzigd op 01/03/2018 19:54:09 door - Ariën -
Desnoods maak je je 404 pagina wat vriendelijker ("bedoelde je soms pagina xyz?"), maar het lijkt mij niet verstandig te cateren voor dit soort dingen.
Interessanter is waarschijnlijk waar dit vandaankomt. Waarom komt iemand in eerste instantie op zo'n pagina terecht? Dan is er ofwel iets mis aan de navigatie waar je iets aan kunt doen of iemand is gewoon fanta URL's aan het inkloppen waar je niet zoveel aan doet.
It is hard to make anything idiot proof because idiots tend to be ingenious.
(Het is moeilijk om alles idiot proof te maken omdat idioten nogal vindingrijk zijn.)
Ik snap wat jullie allebij bedoelen maar helaas heb ik hier niets aan niet lullig bedoeld natuurlijk alle hulp en adviezen zijn welkom , maar als ik het zo wil doen aan de fanta urls inkloppingen moet ik dat toch zelf weten ... alleen werkt het niet met en of zonder /
EDIT: of in geval je het niet uitmaakt of iets /pagina of /pagina/ is dan strip je in de PHP-code er gewoon de optionele trailing slash vantevoren af. Dit doe ik zelf ook.
Gewijzigd op 01/03/2018 20:20:36 door Thomas van den Heuvel
In dit artikel wordt overigens mod_rewrite goed uitlegd, plus dat er in deze paragraaf verteld wordt over hoe je trailingslash kan afhandelen:
https://www.phphulp.nl/php/tutorial/overig/mod-rewrite/536/flags-in-een-rewriterule/1377/
In dit geval voegen ze die standaard toe. Opzich maakt dit niet uit voor SEO.
Maar zoals Thomas zegt is een aparte voordeur voor je site via de index.php al een goed idee. Echter inbouwen is niet eenvoudig mits je de hele boel op de schop gooit. Daar heeft Thomas destijds ook een artikeltje over geschreven:
http://fangorn.thijma.nl/news/redirecting-all-requests-to-index-php-with-htaccess
Gewijzigd op 01/03/2018 20:26:38 door - Ariën -
RewriteEngine On
RewriteCond %{HTTP_HOST} ^maffiakartel\.nl [NC]
RewriteRule ^(.*)$ http://www.maffiakartel.nl/$1 [L,R=301]
ErrorDocument 404 /404.php
#Create friendly URL
RewriteRule ^registreren/$ signup.php [NC,L]
RewriteRule ^registreren/(.*)/$ signup.php?crimineeltje=$1 [NC,L]
RewriteRule ^screenshots/$ screenshots.php [NC,L]
RewriteRule ^Verhaallijn/$ Verhaallijn.php [NC,L]
RewriteRule ^wachtwoord-vergeten/$ vergeten.php [NC,L]
RewriteRule ^linkpartners/$ linkpartners.php [NC,L]
RewriteRule ^contact/$ contact.php [NC,L]
RewriteRule ^gebruikersnaam-vergeten/$ gbvergeten.php [NC,L]
RewriteRule ^prijzen/$ prijzen.php [NC,L]
Op het moment dat ik RewriteRule ga toevoegen werkt het nog steeds niet wie kan mij vertellen wat ik nu mis , in de tutorial word wel aangegeven dat je het zo moet gebruiken
RewriteRule ^registreren/(.*)$ registreren/ [R]
RewriteRule ^registreren/(.*)/$ signup.php [L]
Maar dan word ik terug gelinkt naar /domains/maffiakartel.nl/public_html/registreren/
Wie kan mij hierbij helpen , het is erg vervelend dat het niet zo gaat als het moet..
Het is veel makkelijker, handiger en veiliger om gewoon maar één voordeur in je applicatie te hebben, oftewel een "single point of entry": index.php. In dat script kun je tevens berekeningen uitvoeren die bepalen welke pagina geladen dient te worden. Dit is vele malen handiger en eenvoudiger dan in een .htaccess lopen te prutten.
Als je nu eens je .htaccess simpelweg gebruikt om alles door te schoppen naar index.php, en dat je daar de URL eens onder de loep neemt - eventueel kun je dan ook nog slashes strippen enzo, dus dan maakt het niet uit of je iets aanroept met /pagina of /pagina/. En vervolgens require je het juiste script. Easy as pie. Geen gezever meer in je .htaccess, je definieert zelf de regels in PHP.
Gewijzigd op 03/03/2018 01:06:12 door Thomas van den Heuvel
Thanks man ik ga er gelijk mee aan de slag :)
Als je zijn artikel volgt:
http://fangorn.thijma.nl/news/redirecting-all-requests-to-index-php-with-htaccess
Dan heb je $path.