Pendekatan serupa lainnya adalah menggunakan htaccess mod_rewrite untuk mengabaikan bagian jalur saat menyajikan file. Halaman indeks Anda yang tidak pernah di-cache mereferensikan jalur terbaru ke file.
Dari perspektif pengembangan, semudah menggunakan params untuk nomor versi, tetapi sekuat pendekatan nama file.
Gunakan bagian jalur yang diabaikan untuk nomor versi, dan server mengabaikannya dan menyajikan file yang tidak di-cache.
1.2.3/css/styles.css
menyajikan file yang sama seperti css/styles.css
sejak direktori pertama dihapus dan diabaikan oleh file htaccess
Termasuk file berversi
<?php
$version = "1.2.3";
?>
<html>
<head>
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
<link rel="stylesheet" type="text/css" href="<?php echo $version ?>/css/styles.css">
</head>
<body>
<script src="<?php echo $version ?>/js/main.js"></script>
</body>
</html>
Perhatikan bahwa pendekatan ini berarti Anda perlu menonaktifkan cache halaman indeks Anda - Menggunakan tag <meta> untuk menonaktifkan cache di semua browser?
file .htaccess
RewriteEngine On
# if you're requesting a file that exists, do nothing
RewriteCond %{REQUEST_FILENAME} !-f
# likewise if a directory that exists, do nothing
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise, rewrite foo/bar/baz to bar/baz - ignore the first directory
RewriteRule ^[^/]+/(.+)$ $1 [L]
Anda dapat mengambil pendekatan yang sama pada platform server apa pun yang memungkinkan penulisan ulang url
(rewrite condition diadaptasi dari mod_rewrite - rewrite directory ke query string kecuali / #! / )
... dan jika Anda memerlukan perusakan cache untuk halaman indeks / titik masuk situs, Anda selalu dapat menggunakan JavaSript untuk menyegarkannya.