Sto lavorando su un piccolo framework in cui ho questo albero delle directory:
project/
|--- ... (directories unrelated to the question)
|--- public/
| |--- index.php
.htaccess
Il .htaccess invia ogni richiesta a project/public/index.php
ma devo aggiungere regole specifiche per le risorse (fogli di stile, js, immagini, ...) .
Cercando molto Ho iniziato ad aggiungere una RewriteCond
per estensioni specifiche come ho visto quasi ovunque, e RewriteRule
per catturare parti dell'URL a partire da nomi di cartelle come css/
etc:
# Send front-end assets in the public directory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} \.(bmp|css|gif|ico|jpe?g|js|png|tiff)$
RewriteRule ((css|js|img)\/.*\..*)$ public/$1 [L,QSA]
Ma ciò significa che definirei le estensioni consentite. E questo significherebbe anche che definirei un elenco specifico di sottodirectory consentite in public/
.
Non sono un esperto di mod_rewrite , ma ho solo pensato di definire un "prefisso delle risorse" che, se presente nell'URL, avrebbe riscritto il resto di l'URL della directory public
.
URL di esempio:
| detect | rewrite to /public/$1
some_route_to_strip/_prefix_/any_custom_dir/any_file.ext
- Dovrei evitare di farlo? Se sì, perché?
- In caso contrario, è il modo di gestire le richieste ai file di asset. Ho quasi sempre trovato un buon modo per fare?