[htaccess] Rewrite naar subdir maar css uit rootdir

Pagina: 1
Acties:

  • McKaamos
  • Registratie: Maart 2002
  • Niet online

McKaamos

Master of the Edit-button

Topicstarter
Hoi allemaal,

Op het moment zit ik te coden aan een website, maar ik loop tegen wat probleempjes aan met .htaccess.
Ik heb een root dir met daar in een index.php en een stylesheet. Verder nog een paar mapjes die er niet toe doen.
Nu wil ik dat wanneer ik domein.nl/"nummer" redirect naar domein.nl/"nummer"/.
Dan wordt het nummer doorgegeven naar index.php?page="nummer", welke een pagina genereert waarin een stylesheet wordt aangeroepen.

In de basis opstelling, zonder nummer, werkt het en wordt de stylesheet opgeroepen.
Maar wanneer er een nummer achter de url staat krijg ik een on-opgemaakte pagina en in de logs vind ik 404 errors terug die melden dat de stylesheet niet gevonden kan worden.

De code die ik tot zo ver heb:
code:
1
2
3
4
5
6
7
8
9
10
11
12
RewriteEngine on

#Rewriten van URL naar non-www
RewriteCond %{HTTP_HOST} !^domein.nl$ [NC]
RewriteRule ^(.*)$ http://domein.nl/$1 [R=301]

#URLs mooi maken
RewriteRule ^([0-9][0-9]?)$ http://domein.nl/$1/ [R=301]
RewriteRule ^([0-9]?)/$ /index.php?page=$1

#Zorgen dat Stylesheetaltijd te vinden is
RewriteRule ^\.css$ /stylesheet.css


Ik heb er nu al uren naar zitten kijken, dingen aangepast, gegoogled, de apache mod_rewrite manual doorgekeken, maar als ik domein.nl/1/ opvraag wordt de stylesheet niet gevonden.

Uiteraard moet ik dit ook nog gaan fixen voor plaatjes e.d. die in apparte mappen staan, maar dat komt later wel, want ik verwacht dat ik tegen hetzelfde probleem aan ga lopen.

Ziet iemand wat ik verkeerd doe?

Iemand een Tina2 in de aanbieding?


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Zet eens een <base href="http://domein.nl"> in de <head> van al je pagina's. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • McKaamos
  • Registratie: Maart 2002
  • Niet online

McKaamos

Master of the Edit-button

Topicstarter
what the hell... dat werkt!
Zou je me misschien willen uitleggen wat je met die tag doet?

Iemand een Tina2 in de aanbieding?


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Die tag maakt alle relatieve url's in je pagina relatief aan de opgegeven url, in plaats van relatief aan de working dir. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • McKaamos
  • Registratie: Maart 2002
  • Niet online

McKaamos

Master of the Edit-button

Topicstarter
Maar dat heeft toch niks met de htaccess te maken? en die zou toch, onafhankelijk van het opgevraagde pad de stylesheet moeten weergeven uit de rootdir?
Alles wat eindigt op .css zou door htaccess moeten worden gekoppeld aan /stylesheet.css, transparant voor de browser.
Dus ookal zou ik ./jantje/pietje/klaasje/ditisgeenstylesheet.css opvragen, zou de htaccess /stylesheet.css moeten doorgeven.

[ Voor 44% gewijzigd door McKaamos op 17-03-2008 00:03 ]

Iemand een Tina2 in de aanbieding?


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Je browser ziet http://domein.nl/getalletje/ als een map. Hij gaat je css dus zoeken relatief aan die map, en die map bestaat niet. ;) Waarom je rewriterule niet werkt weet ik trouwens niet.

[ Voor 17% gewijzigd door NMe op 17-03-2008 00:12 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • McKaamos
  • Registratie: Maart 2002
  • Niet online

McKaamos

Master of the Edit-button

Topicstarter
Dat snap ik ;)
Maar het idee is dus dat als er om een .css gevraagd wordt, in welke map dan ook, hij altijd /stylesheet.css uit de root pakt.
Dat zou m'n rewrite rule ook moeten doen, maar dat doettie niet, en ik wil weten waarom niet en hoe ik het werkend kan krijgen ;)

Iemand een Tina2 in de aanbieding?


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Werkend heb je het al. :+ Maar ik kan me voorstellen dat je wil weten wat er schort aan jouw oplossing. :P

Ik denk trouwens dat ik ook zie wat er aan jouw oplossing schort. ^ matcht het begin van een string. Jij probeert te matchen op ^\.css$, wat dus betekent dat die file letterlijk ".css" moet heten, en anders matcht het dus niet. Jij wil waarschijnlijk matchen op \.css$ of eventueel ^.*\.css$ :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • McKaamos
  • Registratie: Maart 2002
  • Niet online

McKaamos

Master of the Edit-button

Topicstarter
Ja hoor, lolbroek :+ werkend via htaccess is wat ik wil ;)

Anyway, na wat prutsen en logfiles doorspitten heb ik weer wat informatie :)
Het lijkt er op dat als ik rewrite naar /stylesheet.css ik op een andere map uit kom, nl domein1/stylesheet.css.

De situatie is nl als volgt:
Ik zit bij een hosting provider waar ik één webruimte heb, en twee domeinen.
In de docroot staan twee mappen (domein1 en domein2) en een .htaccess met de volgende code:
code:
1
2
3
4
5
6
7
RewriteEngine on
RewriteCond %{HTTP_HOST}    ^domein1.nl$
RewriteCond %{REQUEST_URI}  !^/domein1/
RewriteRule (.*)            /domein1/$1 [last]
RewriteCond %{HTTP_HOST}    ^domein2.nl$
RewriteCond %{REQUEST_URI}  !^/domein2/
RewriteRule (.*)            /domein2/$1 [last]


Nu is het domein waar ik aan werk dus domein2.nl. (domein1.nl is een prive website die ik laat onderhouden door m'n vriendin :P puur HTML, heeft geen last van htaccess en rewrite regels)
Domein2.nl is het tweede domein van het pakket en rewriten heeft in sommige situaties dus rare effecten.
Nu heb ik het opgelost door de volledige URL in de css rewrite regel te zetten, maar das niet mooi.
Ik wil het het liefste volledig scheiden.
RewriteBase instellen in de htaccess in de domein2 map heeft geen effect.

Is het mogelijk om b.v. in de htaccess in de docroot een nieuwe docroot verwijzing te zetten voor beide domeinen, zodat ze allebei de bijbehorende map als docroot hebben? (zodat de rewrites dus ook goed gaan ;) )
Voor zover ik weet staat er op dit moment in de vhost configuratie dat beide domeinen m'n huidige docroot als docroot hebben. Ik kan alleen niet bij de vhost config en ik verwacht ook niet dat dat voor mij aangepast zou worden.

[ Voor 7% gewijzigd door McKaamos op 17-03-2008 10:10 ]

Iemand een Tina2 in de aanbieding?


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Wat heb je precies gedaan met mijn suggestie in mijn vorige post? :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • McKaamos
  • Registratie: Maart 2002
  • Niet online

McKaamos

Master of the Edit-button

Topicstarter
-NMe- schreef op maandag 17 maart 2008 @ 11:17:
Wat heb je precies gedaan met mijn suggestie in mijn vorige post? :)
geprobeerd, geen effect.
Het stomme is nl dat de rewrite rule rewrite naar /home/user/docroot/domain1/stylesheet.css
Als ik de URL volledig invul bij de rewrite werkt het wel.
Met jouw instelling werkt het niet, gezien er niks te matchen is op de home pagina (zonder /"nummer"/)

Iemand een Tina2 in de aanbieding?

Pagina: 1