Voor mijn website wil ik de non-www url doorsturen naar de www-URL. Nu heb ik een rewriterule gefabriceerd die zijn werk wel goed doet, alleen de Multiviews lijken roet in het eten te gooien...

Ik heb dit in mijn .htaccess staan:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

Options +FollowSymLinks
Options MultiViews


Echter steeds als er een bestand wordt aangeroepen (/news bijv. wat in werkelijkheid dus news.php is) komt de .php-extentie er steeds bij.

http://site.nl/news/1337 wordt dan: http://site.nl/news.php/1337
http://www.site.nl/news/1337 blijft verder gewoon zo, zoals het prima hoort.

Iemand enig idee hoe dit kan, en wat de oplossing is?
Ik heb zojuist al geprobeerd om de Options Multiviews bovenaan te zetten, maar dat maakt niks uit.
Thomas van den Heuvel op 08/03/2015 20:10:39

^ zie mijn EDIT: nu ik je eerdere bericht lees: er zit blijkbaar al op een of andere manier een verschil tussen domeinen die niet met www beginnen, en domeinen die dit wel doen, gegeven de omzettingen die al plaatsvinden. Waar komt dat dan vandaan?

Ik snap je niet?

De rewriterule werkt verder wel, maar omdat ik Multiviews gebruik (en daar stap ik niet 1-2-3 vanaf) lijkt dit te worden genegeerd, en krijg ik dus bij elke bestand die .php-extentie erachter. En dat gebeurt alleen als ik dus de non-www URL gebruik.
Maar de URLs met www doen dit niet. Waar komt dit verschil vandaan :].
Daar ben ik juist benieuwd naar, plus hoe we dit kunnen uitzoeken en tackelen.
En dat is tevens ook mijn vraag ;-)
Wellicht een default config die roet in het eten gooit (en specifiek werkt op hostnames die starten met www)?

Alternatief: multiviews toch uitzetten en dan met rewriterules .php er aanplakken.
Zie hier en hier, maar dat is wellicht niet optimaal...
Misschien multiviews alleen aanzetten als de host correct is?
Zie de canonial hostname sectie: http://httpd.apache.org/docs/2.4/rewrite/remapping.html
Daar zeggen ze ook dat de netste optie verschillende virtual hosts is, daarna een if, en daarna mod rewrite...

Dus als je je .htacces nou eens opdeelt in twee secties?
Een binnen een if voor de incorrecte hostname, en de andere in een if voor de correcte hostname?
Multiviews kan ik uittesten, en dan overstappen op rewriterules, maar dat moet ik goed uittesten, gezien er een aantal randvoorwaarden zijn binnen mijn CMS.

De oplossing van Dos Moonen zou een mogelijkheid kunnen zijn. Ik kan met meerdere virtual-hosts werken, maar de vraag is hoe DirectAdmin daar mee omgaat. Ik wil niet teveel afwijken van standaardconfiguraties. Volgens mij kan je die if ook gewoon al in .htaccess gebruiken.

Maar de vraag blijft, waarom gebeurt deze vreemde gebeurtenis?

Reageren