Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

  • storeman
  • Registratie: April 2004
  • Laatst online: 09:22
We zitten in een overgangsfase van een website, hierbij zijn er zeer veel html bestanden aanwezig, deze blijven voorlopig zeker nog bestaan. Mede omdat de eigenaar van de site deze zelf eenvoudig en naar wens kan beheren. Echter komen er steeds meer dynamische pagina's op de site, welke ik wil afvangen met een applicatie (ZF based). Ik wil eigenlijk dat apache zo 'intelligent' configureren, dat de statische pagina's direct worden geserveerd zonder tussenkomst van de applicatie.

Hierbij wil ik graag de statische site in een submap zetten op de server, zodat we met een schone public root kunnen beginnen en de beheerder eenvoudig kan syncen zonder de applicatie om zeep te helpen.

Dit heb ik als volgt gedaan:

htdocs/index.php (applicatie index)
htdocs/.htaccess (om in de intelligentie te voorzien)
htdocs/_static/ (hier wil ik graag de statische site in hebben)

Nu had ik de volgende htaccess:

code:
1
2
3
4
5
6
7
8
9
10
RewriteEngine On
RewriteBase /

# Check if requested page is origal
RewriteCond %{REQUEST_FILENAME} !-s 
RewriteCond %{REQUEST_FILENAME} !^_static.*$
RewriteRule ^(.*)$ _static/$1

RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^.*$ index.php [L]


Wat zijn ding prima doet, echter kom ik dan in de knel met een link als
site.nl/downloads

Deze zou de pagina downloads/index.htm moeten serveren. Dit heb ik op kunnen lossen door:

code:
1
2
3
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME}/index.htm -s
RewriteRule ^(.*)$ $1/index.htm [L]


toe te voegen. Dan wordt de pagina juist geserveerd. Echter staat er dan geen trailing slash achter de url. Waardoor alle relatieve links in deze pagina fout doorverwijzen. Is het mogelijk het standaard gedrag van Apache (wat goed werkt) te combineren met mijn andere eisen?

Ik heb namelijk het volgende ook geprobeerd:

code:
1
2
3
4
5
# Add trailing slash
RewriteCond %{REQUEST_FILENAME} !-s 
RewriteCond %{REQUEST_URI} !.*\/.+\..+$
RewriteCond %{REQUEST_URI} !.*\/$
RewriteRule ^(.*)$ $1/ [L,R=301]


Dit werkt dan wel goed, maar mijn ajax requests worden dan ook geredirect, waardoor dit weer in de soep loopt.

"Chaos kan niet uit de hand lopen"


  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Als je de statische pagina's nou eens laat eindigen op .htm en .html. Dan kun je daarop ook de redirect uitvoeren en komen alleen die extensies uit in de _static map.

Ik neem aan dat de css en js bestanden gewoon door zowel de statische en dynamische pagina's worden gebruikt..

If it isn't broken, fix it until it is..


  • storeman
  • Registratie: April 2004
  • Laatst online: 09:22
Niemand_Anders schreef op vrijdag 05 augustus 2011 @ 09:59:
Als je de statische pagina's nou eens laat eindigen op .htm en .html. Dan kun je daarop ook de redirect uitvoeren en komen alleen die extensies uit in de _static map.

Ik neem aan dat de css en js bestanden gewoon door zowel de statische en dynamische pagina's worden gebruikt..
Dat zou inderdaad een oplossing zijn, echter is de site niet zo gestructureerd opgezet dat alle externals in vaste mappen staan, die staan overal door de site. Dit is dus lastig te realiseren.

-EDIT-

Na nog meer proberen ben ik tot de volgende oplossing gekomen:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
RewriteEngine On
RewriteBase /

# Check if requested page is origal
RewriteCond %{REQUEST_FILENAME} !-s 
RewriteCond %{REQUEST_FILENAME} !^_static.*$
RewriteRule ^(.*)$ _static/$1

RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME}/index.htm -s
RewriteRule ^_static(.*)$ $1/index.htm [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^.*$ index.php [L]

[ Voor 29% gewijzigd door storeman op 05-08-2011 10:46 ]

"Chaos kan niet uit de hand lopen"


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij