Beste,

Ik heb op mijn lokale WAMP server, in de root, een project lopen met .htaccess.

Nu wil ik in een andere map ook een .htaccess gebruiken zodat ik van mijn test server naar de production server kan kopieren zonder problemen.
Anders moet ik alle links van index.php?page=user naar /user/ gaan hernoemen etc.

Nu heb ik op mijn lokale subfolder project het voor elkaar gekregen om dus die 'neppe' urls te creeren. Maar mijn CSS en JS bestanden willen niet goed laden.

RewriteEngine On

RewriteBase /_ander/newsite/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/ [L,R=301] 

# Bestaande bestanden of mappen uitsluiten
RewriteCond %{REQUEST_FILENAME} -f [NC,OR]
RewriteCond %{REQUEST_FILENAME} -d [NC]
RewriteRule ^(.*?)$ $1 [L]


RewriteRule ^(.*)/(.*)/ index.php?page=$1&params=$2 [L]
RewriteRule ^(.*)/ index.php?page=$1 [L]


Iemand enig idee wat er fout gaat of wat hier mist?
Hoe zien de verwijzingen naar je CSS en JS files eruit?
Gewoon met slash "/" er voor..

Edit. Als ik via de broncode uit FF op die links klik, verwijzen ze helemaal door naar 'localhost'.
Staan de subfolders wel in het pad waar die links naartoe verwijzen? Dus:

/_ander/newsite/style.css

Als je alleen /style.css hebt staan, wordt er inderdaad in de root naar style.css gezocht en daar zal de file niet gevonden worden.
Maar daarvoor heb ik toch RewriteBase zodat ik daar kan zeggen "/_ander/newsite/" zodat ik in mijn code gewoon / kan zetten en dat wanneer ik alles upload naar newsite.ext dat de URLs dan gewoon werken.

Anders kan ik in de live code alle "/_ander/newsite/" codes eruit slopen..
Bump.

Iemand die hier een oplossing voor heeft?
De RewriteBase vertelt enkel vanaf welke positie de daarna volgende RewriteRules moeten gelden. Maar als jij nooit in die betreffende map uitkomt (zoals in het geval van je CSS en JS) zal de .htaccess nooit geladen worden en je RewriteRules dus nooit toegepast worden.

Jij draait de werking nu eigenlijk om, je probeert mod rewrite te gebruiken om gedeeltelijke urls aan te vullen. Maar het is juist bedoeld om volledige urls (onzichtbaar) te herschrijven naar andere urls.

Je zult dus in elke link het gedeelte /_ander/newsite/ op moeten nemen. Uiteraard kun je daar een slimme manier voor verzinnen door bijvoorbeeld een variabele $base te gebruiken die je voor alle links zet. Zodra je de site verplaatst naar je live omgeving, hoef je dan alleen nog deze $base variabele aan te passen...
Da's best klote.

Bedankt voor je antwoord Blanche.

Reageren