na rewrite URL laad de CSS niet meer

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Peter van Hummol

Peter van Hummol

31/05/2015 12:59:02
Quote Anchor link
Hallo,

ik zit met een probleem, ik heb een website in PHP gemaakt, toen ik deze online had gezet kwam ik er pas erachter dat ik met dirty URL's werkte, dit heb ik uit eindelijk kunnen rewrite naar een clean URL met deze regels in de .htaccess:

RewriteEngine On
RewriteRule ^login/?$ login.php [NC,L]


echter nu loop ik tegen het volgende probleem aan, de CSS en alle links in het HTML kloppen niet meer als ik na de clean URL ga, de CSS linkt is nu niet meer "href='stylesheetprofiel.css' " maar hij maakt er href='login/stylesheetprofiel.css' niet in de broncode, maar hij rewrite dat dus ook op de een of andere manier. Hij verwijst dus nu naar een extra map in de root genaamd "login" (die niet bestaat). Ik heb gisteren deze map aangemaakt en daar de CSS in gezet. Dan laad hij hem wel in zonder problemen, maar dit lijkt mij niet de oplossing. Ik heb ook een home knop op de "login" pagina, en deze verwijst dus nu ook naar "www.website.nl/login/login/". Ik heb echt nul verstand van .htaccess maar ik zoek dus de meest SEO vriendelijke oplossing.

Alvast super bedankt!
 
PHP hulp

PHP hulp

18/05/2024 20:39:17
 
Frank Nietbelangrijk

Frank Nietbelangrijk

31/05/2015 13:32:34
Quote Anchor link
Volgens mij kun je dit voorkomen door een paar condities toe te voegen zodat url's naar bestanden die fysiek aanwezig zijn op de webserver niet herschreven worden

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^login/?$ login.php [NC,L]
 
Peter van Hummol

Peter van Hummol

31/05/2015 13:39:42
Quote Anchor link
Ik heb zojuist voor alle path's een gezet "/" ze lijken nu gewoon te werken, hier door worden het relative URL(?). Ik durf alleen niet te zeggen of jou oplossing beter zou zijn voor de SEO. Ik zal dadelijk eens een test doen met die extra code regels.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

31/05/2015 13:44:55
Quote Anchor link
Die extra regels zullen geen voordeel bieden wat betreft SEO.

Ze zorgen er meer voor dat bestaande bestanden en directories bereikbaar blijven.

Stel dat

www.example.com/config.php wordt herschreven naar www.example.com/index.php?page=config

maar dat er naast een index.php ook een echt bestand config.php bestaat.
Die zou nu dus "onbereikbaar" zijn omdat hij doorgesluisd wordt naar index.php.

Met mijn twee extra regels voorkom je dit. Als het bestand dan DAADWERKELIJK op de server staat wordt de url NIET herschreven. Bestaat het bestand niet daadwerkelijk op de server dan wordt de url WEL herschreven.

Ik ben er verder niet zeker van of je dit nodig hebt ja of nee
Gewijzigd op 31/05/2015 13:45:14 door Frank Nietbelangrijk
 
Peter van Hummol

Peter van Hummol

31/05/2015 14:23:32
Quote Anchor link
Dit is misschien wel technisch beter, alle URL's lopen nu gewoon goed. Enige probleem wat ik nu nog heb is, als er een bedrijf is met een spatie in de naam. Dan maakt hij er van "bedrijf+naam". Wat ook de bedoeling is anders krijg ik foutmeldingen in PHP.

RewriteRule ^bedrijf/([a-zA-Z-+]+)/?$ index.php?bedrijf=$1 [NC,L]

antwoord al gevonden + erbij zetten.
Gewijzigd op 31/05/2015 14:36:33 door Peter van Hummol
 
Thomas van den Heuvel

Thomas van den Heuvel

31/05/2015 17:11:03
Quote Anchor link
Het toevoegen van een base tag in je HTML-document helpt ook te voorkomen dat je CSS/JavaScript in de war raakt met (relatieve) verwijzingen als je in een niet-bestaande subdirectory zit (die wordt herschreven naar iets anders).
 



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.