RewriteRule op WAMP-omgeving: relatief pad probleem

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Rekcor
  • Registratie: Februari 2005
  • Laatst online: 05-09 21:08
Om redenen die er hier niet toe doen, wil ik een bezoeker naar de volgende URL

127.0.0.1/mysite/drupal7/sites/all/modules/booking/app/assets/lib/fullcalendar-4.4.0/packages/core-slash-main.min.css

redirecten naar

127.0.0.1/mysite/drupal7/sites/all/modules/booking/app/assets/lib/fullcalendar-4.4.0/packages/core/main.min.css

Ik heb daartoe in 127.0.0.1/mysite/drupal7/sites/all/modules/booking/app/assets de volgende .htaccess aangemaakt:

code:
1
2
3
4
<IfModule mod_rewrite.c>
 RewriteEngine On  
 RewriteRule ^(.*\/fullcalendar-4\.4\.0\/packages\/.+)-slash-([^.]+\.(min\.)?(js|css))$ "/$1/$2" [R=302] 
</IfModule>


Mijn probleem: de bezoeker wordt doorgeleid naar

127.0.0.1/lib/fullcalendar-4.4.0/packages/core/main.min.css

Dit verbaast mij, want bij een normale regex engine, bevat $1 de complete URL, maar volgens mod_rewrite alleen het stuk na /assets. Hoe kan ik ervoor zorgen dat de rewrite de complete URL meeneemt?

P.S. Ik kan natuurlijk dat stuk URL hard-coded voor "$1" zetten, maar dan werkt het niet op de acceptance/productie-omgeving, want daar zijn de mappen anders...

Alle reacties


Acties:
  • 0 Henk 'm!

  • Rekcor
  • Registratie: Februari 2005
  • Laatst online: 05-09 21:08
Oplossing gevonden!

code:
1
2
3
4
5
6
7
8
<IfModule mod_rewrite.c>
 RewriteEngine On   
 RewriteBase /
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond $0#%{REQUEST_URI} ([^#]*)#(.*)\1$

 RewriteRule -slash-([^.]+\.(min\.)?(js|css))$ %2/$1 [R=302] 
</IfModule>


Dit zorgt ervoor dat het htaccess-bestand in iedere subdirectory kan staan, omdat het pad dynamisch wordt 'gecaptured'.

De laatste RewriteRule is specifiek voor mijn probleem, maar de %2 aldaar bevat dus het huidige pad.

Voor uitleg, zie https://web.archive.org/w...wing-the-RewriteBase.html

[ Voor 8% gewijzigd door Rekcor op 07-03-2020 08:28 ]