6217a216a7
Safari/iPhone recording now uses MP4/AAC when WebM is unavailable. WebM remains the default when supported and FFmpeg is disabled. Added optional FFmpeg profiles: recommended M4A/AAC-LC or requested MP4/H.264 + AAC. Added MIME-aware, playsinline audio playback. Added dashboard controls under Plans & Platform → Voice Transcoding / FFmpeg. Added Apache/Nginx media MIME configuration and documentation. Core implementation: voice_transcoder.php (line 72), messages.php (line 86), and cyberchat-app.js (line 635).
46 lines
1.3 KiB
ApacheConf
46 lines
1.3 KiB
ApacheConf
# CyberChat .htaccess — Apache configuration
|
|
|
|
# Deny direct access to databases and the credential-bearing config file
|
|
<FilesMatch "(^config\.json$|\.sqlite($|-wal$|-shm$))">
|
|
<IfModule mod_authz_core.c>
|
|
Require all denied
|
|
</IfModule>
|
|
<IfModule !mod_authz_core.c>
|
|
Order Allow,Deny
|
|
Deny from all
|
|
</IfModule>
|
|
</FilesMatch>
|
|
|
|
# Always revalidate HTML so new asset versions take effect immediately.
|
|
<IfModule mod_headers.c>
|
|
<FilesMatch "\.(html?)$">
|
|
Header set Cache-Control "no-cache, no-store, must-revalidate"
|
|
Header set Pragma "no-cache"
|
|
Header set Expires "0"
|
|
</FilesMatch>
|
|
</IfModule>
|
|
|
|
# Voice playback MIME types, including Safari/iPhone-compatible AAC in MP4.
|
|
<IfModule mod_mime.c>
|
|
AddType audio/webm .webm
|
|
AddType audio/wav .wav
|
|
AddType audio/aac .aac
|
|
AddType audio/mp4 .m4a
|
|
AddType video/mp4 .mp4
|
|
</IfModule>
|
|
|
|
# Deny direct access to storage and internal PHP libraries
|
|
<IfModule mod_rewrite.c>
|
|
RewriteEngine On
|
|
RewriteRule ^db/ - [F,L]
|
|
RewriteRule ^archive/ - [F,L]
|
|
RewriteRule ^lib/ - [F,L]
|
|
</IfModule>
|
|
|
|
# PHP settings (if allowed by host)
|
|
<IfModule mod_php.c>
|
|
php_value session.cookie_httponly 1
|
|
php_value session.cookie_samesite Strict
|
|
php_value session.use_strict_mode 1
|
|
</IfModule>
|