SMsoft – informatica e dintorni

varie su OSX, GNU/Linux e l'Open Source

Regola di rewrite apache per richiamare i files senza estensione

La seguente regola di rewrite per apache potrebbe tornare utile nel caso sia necessario dover richiamare i files .php presenti nello spazio web senza specificare l’estensione, ad esempio poter richiamare www.site.ext/pippo piuttosto che www.site.ext/pippo.php:

 bash |  copy code |? 
1
RewriteEngine On
2
RewriteBase /
3
RewriteCond %{REQUEST_FILENAME} !-f
4
RewriteCond %{REQUEST_FILENAME} !-d
5
RewriteRule ^(.+)$ $1.php [QSA,L]

enjoy!

Apache: redirect da http ad https

Abbiamo un nome a dominio www.pippo.it e vogliamo che qualsiasi pagina di questo dominio venga richiamata, si venga rediretti verso l’omonimo dominio con protocollo https. In pratica richiamando qualcosa del tipo:
http://www.pippo.it/index.html
in automatico il visitatore deve essere rediretto verso:
https://www.pippo.it/index.html

Bene, avremo sicuramente due file di configurazione di apache, uno che gestisce il dominio in https ed uno per il dominio in http. Apriamo il file di configurazione del dominio http dove troviamo qualcosa del tipo:

ServerAdmin webmaster@localhost
ServerName www.pippo.it
ServerAlias pippo.it

DocumentRoot /var/www/pippo
... ...

ed aggiungiamo:
RewriteEngine on
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 2

Ora facciamo rileggere la configurazione ad apache:
/etc/init.d/apache2 reload

ed il gioco è fatto.

enjoy!

Riconoscere lato server se la navigazione avviene da iPad

Potrebbe essere comodo capire se la navigazione nel proprio sito avviene da iPad, magari per mostrare una pagine web formattata in modo differente.
Questa verifica può essere fatta lato client in JavaScript, oppure lato server in PHP o direttamente tramite rewrite del server web (apache in questo caso).
Il concetto è sempre lo stesso: riconoscere il browser del visitatore dall’UserAgent.

In JavaScript è possibile usare il seguente codice:

 javascript |  copy code |? 
1
var isiPad = navigator.userAgent.match(/iPad/i) != null;
2
var ua = navigator.userAgent;
3
var isiPad = /iPad/i.test(ua) || /iPhone OS/i.test(ua);

In PHP è possibile usare il seguente codice:

 php |  copy code |? 
1
$isiPad = (bool) strpos($_SERVER['HTTP_USER_AGENT'],'iPad');

Infine con le regole di rewrite da inserire in un file .htaccess, si può usare il seguente codice per attivare il redirect verso un altro indirizzo nel caso il visitatore usi un iPad:

 apache |  copy code |? 
1
RewriteCond %{HTTP_USER_AGENT} ^.*iPad.*$
2
RewriteRule ^(.*)$ http://ipad.domain.ext [R=301]

Page optimized by WP Minify WordPress Plugin