Come posso servire uno script con apache invece di eseguirlo?
-
02-07-2019 - |
Domanda
Sto cercando di ospitare uno script Python usando un web server Apache, ma il server tenta di eseguire lo script invece di offrirlo solo per il download.
Non ho accesso diretto al server e aggiungo la linea
AddType text/plain .py
a .htaccess nella cartella principale non sembra funzionare, anche se potrei fare qualcosa di sbagliato.
Come posso ottenere che il server invii semplicemente il file come testo invece di provare a eseguirlo?
-Edit
La modifica del nome non funziona. Script.py.safe dà ancora un errore 500 Server quando fai clic su di esso.
Dovrei anche menzionare che il file .htaccess funziona, ma per qualche motivo che una riga addType non funziona. O perché non ha la precedenza su qualcosa o la linea è sbagliata.
Soluzione
Nel tuo .htaccess:
RemoveHandler .py
Altri suggerimenti
Se non puoi modificare la configurazione di Apache e non puoi sovrascriverla con un file htaccess, allora mi sembra che le soluzioni più semplici sarebbero o cambiare l'estensione del file, oppure scrivere uno script che stampa il contenuto dello script di destinazione.
Entrambi sono in qualche modo hack, ma la soluzione corretta è cambiare la configurazione di Apache.
Un'opzione è cambiare l'estensione e chiarire che dovrebbe essere rinominato. IE python.py.safe o python.py.dl. L'utente dovrebbe quindi rimuovere il bit extra.
Potresti anche comprimerlo.
Scriverei qualcosa che carica lo script Python. In questo modo potresti persino diventare energico e includere la formattazione e lo stile del codice. Potresti anche scriverlo in Python poiché non lo avrai precluso dall'estensione del file.
<IfModule mime_module>
<Files *.py>
ForceType text/plain
</Files>
</IfModule>
in un .htaccess per la cartella dovrebbe funzionare;)