2017-09-07 1 views
0

J'ai un fichier d'index sous www/et config apache ensemble DirectoryIndex que index.htmlHTML toujours chargé à partir du cache

Si j'utilise ce lien

example.com/ 

Tout fonctionne très bien puisque le HTML lui-même a balise meta pour ne pas utiliser le cache mais si j'utilise

example.com (Which in url bar will redirect to example.com/) 
//Note: In chrome, the initiator for this also change to example.com 

L'indice est toujours tiré par les cheveux de cache

Et la deuxième façon est de savoir comment l'utilisateur final normal dans l'adresse. Pouvez-vous expliquer ce qui se passe?

Répondre

1

example.com/ est traité différemment de example.com. La barre oblique indique qu'une URL est un dossier et non un document. L'ajout de barres obliques supplémentaires (telles que example.com///) constiituera également une mise en cache indépendante à cet égard.

Je recommande forcer une seule barre oblique qui peut être fait avec la .htaccess suivante:

RewriteEngine On 

# Assuming you're running at domain root. Change to working directory if needed. 
RewriteBase/

# www check 
# If you're running in a subdirectory, then you'll need to add that in 
# to the redirected url (http://www.example.com/subdirectory/$1 

RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L] 

# Trailing slash check 

# Don't fix direct file links 
RewriteCond %{REQUEST_FILENAME} !-f 

RewriteCond %{REQUEST_URI} !(.*)/$ 
RewriteRule ^(.*)$ $1/ [L,R=301] 

# Finally, forward everything to your front-controller (index.php) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .* index.php [QSA,L] 

Plus d'informations sur ce qui peut être trouvé here.

Espérons que cela aide! :)

+0

Alors que vous avez raison, comment expliquerait-il que example.com serait toujours à partir du cache? Ou c'est le comportement par défaut avec DirectoryIndex? –

+0

Les pages sont différentes et ** chacune ** sera mise en cache. En visitant 'example.com', vous mettrez en cache' example.com'. En visitant 'example.com ///' mettra en cache 'example.com ///'. Le contenu sera identique, mais ils seront mis en cache de manière indépendante. L'ajout de barres obliques comme ceci est en fait un moyen utile de (essentiellement) vous assurer que vous effacez votre cache pour tester des choses comme les changements CSS. –