hij laat css niet door htaccess

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kenny iets

kenny iets

07/07/2015 16:40:35
Quote Anchor link
hallo,
ik ben bezig met eigen framework voor me website
ik loop nu allee tegen het volgende op
ik wil me php document linken met css via html
maar .htaccess blockt het omdat alles wordt omzegt naar _GET
hoe zou ik dit probleem kunnen fixen?
dit is wat ik heb

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
Options -MultiViews

RewriteEngine On

Options -Indexes


RewriteCond %{REQUEST_FILENAME} !-d


RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php?url=$1/ [QSA,L]
 
PHP hulp

PHP hulp

02/12/2020 16:34:48
 
Ivo P

Ivo P

07/07/2015 17:40:21
Quote Anchor link
RewriteCond %{REQUEST_FILENAME} !-f

mis je nog

-l staat voor "link", ofwel "shortcut"
 
Thomas van den Heuvel

Thomas van den Heuvel

07/07/2015 19:35:46
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
RewriteRule ^(.+)$ index.php?url=$1/[QSA,L]


Waarom doet met dit altijd? Hiermee "reserveer" je effectief $_GET['url'] en prop je het opgeroepen pad hierin.

Waarom niet gewoon:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
RewriteRule . index.php [L,QSA]


Vervolgens zit alle informatie (zowel pad als $_GET) in $_SERVER['REQUEST_URI'].
En laat daar nou een functie zijn die alles in 1x uitleest: parse_url(). Voor de querystring variabelen kun je nog altijd $_GET gebruiken natuurlijk.

Alles (eerst) in $_GET['url'] proppen is gekunsteld en onnodig. Je vervuilt hiermee in zekere zin $_GET.
 
Eddy E

Eddy E

08/07/2015 12:46:35
Quote Anchor link
Je kan ook een <base> opnemen in je <head> om dit op te lossen.

Althans, ik denk dat je CSS het niet doet in je HTML.
Daar doel je toch op, met deze zin: ik wil me php document linken met css via html?
Je gooit een CSS-saus over je HTML. PHP heeft daar niets mee te maken.
 
Ivo P

Ivo P

08/07/2015 13:51:12
Quote Anchor link
die base suggestie werkt alleen voor het probleem bij rewriterules in een "submap" en het gebruik van relatieve links naar files.

dus
site/php/forum

en dan een <img src="images/foto.jpg" >

Met base kun je dan zorgen dat de foto niet in /php/forum/images/foto.jpg gezocht wordt.

Maar met bovenstaande rewriterule wordt alles herschreven.

zelfs site.nl/index.php wordt tot site.nl/index.php?url=/index.php
 
Remco van der Velde

Remco van der Velde

03/09/2015 12:05:25
Quote Anchor link
Mijn suggestie is:

in je .htaccess indien een bestand bestaat deze gewoon laden en niet via je index laten lopen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [L]
 
Ozzie PHP

Ozzie PHP

03/09/2015 12:47:06
Quote Anchor link
Offtopic:


ik ben bezig met eigen framework voor me website

ik wil me php document linken met css via html


Het is mijn of m'n framework of document, maar nooit me ...


 

03/09/2015 20:48:33
Quote Anchor link
Je kunt twee alternatieve benaderingen overwegen:
- de CSS gewoon in de HTML zetten. Dynamisch met data-uri's. Kost iets meer bandbreedte, scheelt een boel HTTP requests en maakt netto dat je site sneller laadt.
- de CSS links niet direct naar .css-bestanden laten verwijzen, maar naar hetzelfde index.php script. Met wat GET-parameters kan je het index.php script vertellen welk CSS-bestand je hebben moet, en het script kan de CSS dan met readfile() oid. sturen. Extra voordeel: je kunt via PHP nog wat spelen met HTTP headers, en CSS dynamisch laten genereren, bijvoorbeeld op basis van tijd (donkerder/lichter thema) of gebruikersvoorkeuren voor bepaalde kleuren (hoog contrast, kleurenblindheidsprofieltje, of domweg rood ipv blauw..)

Toevoeging op 03/09/2015 20:53:00:

@Ozzie: nog correcter Nederlands: m?n site! :-)
http://www.fileformat.info/info/unicode/char/0133/index.htm

Toevoeging op 03/09/2015 20:53:24:

Owhja, vergeten.. phphulp ondersteunt geen Unicode :-( (waarom eigenlijk niet?)
Gewijzigd op 03/09/2015 20:54:13 door
 
Thomas van den Heuvel

Thomas van den Heuvel

03/09/2015 21:29:08
Quote Anchor link
Remco van der Velde op 03/09/2015 12:05:25:
Mijn suggestie is:

in je .htaccess indien een bestand bestaat deze gewoon laden en niet via je index laten lopen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [L]


Hier staat in feite (als ik mij niet vergis) "als het opgevraagde ding een bestand of een directory is, dan doe niets".

Ik denk dat je beter uitzonderingen kunt definiëren, dus middels RewriteRules aangeeft wanneer er wel iets speciaals moet gebeuren. De bovenstaande regels zijn nogal loos als je het mij vraagt. Je geeft daar expliciet aan wanneer er niets hoeft te gebeuren :/.

An tje op 03/09/2015 20:48:33:
Owhja, vergeten.. phphulp ondersteunt geen Unicode :-( (waarom eigenlijk niet?)

Voor dit soort (noodzakelijk) onderhoud is blijkbaar geen tijd/geld. Je moet begrijpen dat het budget zeer beperkt is. Dat gaat ook meestal meteen op aan belangrijkere zaken zoals het toevoegen van minuscule icoontjes aan de activiteitenfeed (die overigens ook nog steeds geen charset aanduiding heeft).
Gewijzigd op 03/09/2015 21:35:25 door Thomas van den Heuvel
 

03/09/2015 21:35:41
Quote Anchor link
Ben het wel met Thomas eens dat CSS files zo standaard zijn dat ze gewoon geserved moeten worden door de webserver. Maar waarom zou je CSS files en JavaScript files niet door het index.php script laten lopen?
De roots van PHP liggen in het preprocessen van (tekst)files zoals HTML. Waarom dan liever geen JS en CSS? Ik heb dat optioneel ingebouwd in m'n eigen raamwerkje, en ik vind het wel handig werken voor variabelen, cross browser code (of aanbieden van legacy code als iemand IE8 gebruikt), gebruikersvoorkeuren als locale-instellingen. Dan kan je die NLS-strings allemaal uit een database vissen ipv. dat je tig bestanden krijgt die je (handmatiger) moet onderhouden?
 
Thomas van den Heuvel

Thomas van den Heuvel

03/09/2015 21:44:40
Quote Anchor link
An tje op 03/09/2015 21:35:41:
Maar waarom zou je CSS files en JavaScript files niet door het index.php script laten lopen?


Omdat het niet nodig is.

Ik zou zeggen, houd het simpel + clean.

Ik gebruik zoiets.

En ook maar een intern linkje waar iets soortgelijks voorbij kwam, anders krijg ik weer commentaar dat ik naar mijn eigen site link lol (ondank het feit dat het relevante informatie bevat; ik heb geen zin om hetzelfde verhaal 2x te typen)
 

03/09/2015 21:51:52
Quote Anchor link
We zitten volgens mij op verschillende sporen, ik bedoel NIET dat je via een rewrite rule moet gaan afdwingen dat alle requests via een index.php moeten gaan! Dat beknot je vrijheid, en is niet nodig.
Onder het motto vrijheid+blijheid wil ik ook m'n index.php kunnen gebruiken om dynamische content anders dan HTML te kunnen genereren (JS, CSS, binaire files..) maar dat doe ik liever via functies die URL's voor me genereren die weer naar index.php wijzen. Dan kan ik in PHP ervoor kiezen om die functies te gebruiken of niet.
Is everybody happy?
 
Thomas van den Heuvel

Thomas van den Heuvel

03/09/2015 21:57:02
Quote Anchor link
Euh? Ik redirect niets naar index.php - alles wat geen los bestand of directory is komt op index.php uit. Dat is iets anders! Vervolgens is index.php je verkeersagent die je alle mogelijke kanten door kan sturen op grond van de ingevulde URL (REQUEST_URI), die je aldaar kunt ontleden.

Als jij het vervolgens leuk vindt om een javascript bestand te serveren als je /blaat/hai/hoipipeloi?secret=xyz als pad invoert dan heb je die vrijheid.

Veel flexibeler wordt het niet?

Het is overigens volgens mij een goede gewoonte om "one point of entry" te hebben in je applicatie. Dit is index.php. Alle URL's die "onbekend" zijn worden aan index.php gegeven als een soort van "gateway": "Hey ik heb hier een URL waar ik niks mee kan, weet jij wat ik hiermee moet doen?" Het uiteindelijke antwoord kan dan trouwens alsnog het serveren van een 404 pagina zijn, inclusief 404 HTTP-header.
Gewijzigd op 03/09/2015 21:59:27 door Thomas van den Heuvel
 
Remco van der Velde

Remco van der Velde

04/09/2015 16:56:02
Quote Anchor link
Thomas van den Heuvel op 03/09/2015 21:29:08:
Remco van der Velde op 03/09/2015 12:05:25:
Mijn suggestie is:

in je .htaccess indien een bestand bestaat deze gewoon laden en niet via je index laten lopen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [L]


Hier staat in feite (als ik mij niet vergis) "als het opgevraagde ding een bestand of een directory is, dan doe niets".

Ik denk dat je beter uitzonderingen kunt definiëren, dus middels RewriteRules aangeeft wanneer er wel iets speciaals moet gebeuren. De bovenstaande regels zijn nogal loos als je het mij vraagt. Je geeft daar expliciet aan wanneer er niets hoeft te gebeuren :/.

An tje op 03/09/2015 20:48:33:
Owhja, vergeten.. phphulp ondersteunt geen Unicode :-( (waarom eigenlijk niet?)

Voor dit soort (noodzakelijk) onderhoud is blijkbaar geen tijd/geld. Je moet begrijpen dat het budget zeer beperkt is. Dat gaat ook meestal meteen op aan belangrijkere zaken zoals het toevoegen van minuscule icoontjes aan de activiteitenfeed (die overigens ook nog steeds geen charset aanduiding heeft).


Klopt, im mijn eigen .htaccess doe ik dan bijvoorbeeld dit:
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
RewriteEngine On

#
# Don't rewrite if dir/link/file exists
#

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [L]

#
# Handle in route class...
#

RewriteCond %{HTTPS} off
RewriteRule .* - [E=REQUEST_SCHEME:http]

RewriteCond %{HTTPS} on
RewriteRule .* - [E=REQUEST_SCHEME:https]

RewriteRule ^/?(.*)$ /index.php?request=$1 [L,QSA]
 
Thomas van den Heuvel

Thomas van den Heuvel

04/09/2015 19:31:46
Quote Anchor link
@Remco: Mja, lees deze nog eens zou ik zeggen.
Gewijzigd op 04/09/2015 19:32:58 door Thomas van den Heuvel
 

06/09/2015 15:37:42
Quote Anchor link
Quote:
e moet begrijpen dat het budget zeer beperkt is. Dat gaat ook meestal meteen op aan belangrijkere zaken zoals het toevoegen van minuscule icoontjes

Logisch, ik vind icoontjes ook leuker dan Unicode support :) En strikt genomen is Unicode voor Nederlands ook niet nodig, al was het voor de 'ras'-echte "ij" wel leuk geweest.
 



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.