nginx e .htaccess

Paperino78

Utente Attivo
30 Giu 2012
409
0
16
Milano
Ho da poco messo online un mio sito su server nginx, il problema è che prima usavo apache quindi usavo htaccess senza problemi adesso invece non si può quindi ho dovuto fare alcuni cambiamenti.
Al momento se un utente che naviga con ie8 visitasse il mio sito verrebbe direzionato su una pagina apposita, ma se nella barra degli indirizzi digitasse anche index.pho potrebbe navigare sul sito come se avesse un ie11 cioè senza restrizioni. Come posso fare per evitare che digitando la pagina esatta venga mandato li? Posso mettere un blocco solo per chi usa diciamo da ie5 alla 8 che venga indirizzato solo ed esclusivamente a quella pagina e basta?
 
Puoi mettere nell'index o anche in altre pagine uno script con user agent che individua il browser e il device reindirizzando l'utente alla pagina giusta
 
Ma a questo punto che scopo ha il codice nel file di configurazione del server(ex htaccess)? Basterebbe un codice in php in ogni pagina con successivo redirect o header, sbaglio?
 
Basterebbe! Ma .htaccess è un file di sistema e di sicurezza dove digiti una sola volta le istruzioni invece di inserirle in tette le pagine, ma non serverdo solo allo scopo da te interessato ma la sua ragione d'essere è quella di servire a tantissimi scopi
 
ok, però io non ho l'htaccess in quanto sono su serve nginx e non apache, infatti la configurazine è sul file di configurazione del server non in htaccess.
Viste però le due possibilità che potrebbero esserci non converrebbe che il codice fosse messo in quello che per apache è l'htaccess invece di aggiungere del codice php? Inoltre essendo una serie di browser e non uno potrebbe andare bene questo codice?
PHP:
<?php

if ($_SERVER['HTTP_USER_AGENT]'] === MSIE ){
	header("location: pinco.php");
}

?>

ovviamente MSIE non va bene in quanto sarebbero almeno 3 versini di ie, come poter fare? Con una regex? Mi sapresti dire come.
 
Puoi usare anche JS al posto di PHP
Identifica il browser
Codice:
<script language="javascript">
<!--
document.write("Il tuo browser è " + navigator.appName + " " + navigator.appVersion);
//-->
</script>
Reinderizza in base al browser
Codice:
<script language="javascript">
<!--
if (document.all){
  location.href = "explorer.htm";
}
else if (document.layers){
  location.href = "navigator.htm";
}
else if (document.getElementById){
  location.href = "opera.htm";
}
else{
  location.href = "altri_browser.htm"; 
}
//-->
</script>




.
 
Volevo stare lato server. D'altronde disabilitando js perdo il vantaggio di quello che mi hai scritto.

Volere è potere. Almeno penso...
 
prova questo script
Codice:
<?php
//******************************
//********Configurazione*********
//******************************
$MSIE_URL = "";
$FIREFOX_URL = "";
$OPERA_URL = "";
$SAFARI_URL = "";
$CHROME_URL = "";
$OTHER_URL = "";
// ****reindirizzamento*****
$HTTP_USER_AGENT = $_SERVER['HTTP_USER_AGENT'];
function str_present($str,$substr)
{
$pos = strpos($str,$substr);
if($pos === false) {
 return false;
}
else {
 return true;
}
}
if (str_present($HTTP_USER_AGENT, "MSIE")) 
{
	Header ("Location: " . $MSIE_URL);
}
else if (str_present($HTTP_USER_AGENT, "Firefox"))
{ 
	Header ("Location: " . $FIREFOX_URL);
}
else if (str_present($HTTP_USER_AGENT, "Chrome"))
{ 
	Header ("Location: " . $CHROME_URL);
}
else if (str_present($HTTP_USER_AGENT, "Opera"))
{ 
	Header ("Location: " . $OPERA_URL);
}
else if (str_present($HTTP_USER_AGENT, "Safari"))
{ 
	Header ("Location: " . $SAFARI_URL);
}
else
{ 
	Header ("Location: " . $OTHER_URL);
}
?>




.
 
Grazie, quel codice l'avevo già visto in rete, ho preferito però adottare questo, che è specifico per MSIE, che ovviamente è quello più problematico per tutti.
PHP:
$userAgent = $_SERVER['HTTP_USER_AGENT'];

preg_match( '/MSIE ([0-9]{1,}[\.0-9]{0,})/', $userAgent, $matches );
$version = floatval( $matches[1] );
if( $version <= 8.0 ) {
	header("location: http://sito.ddns.net:80/browserko.php");
}

devo capire come evitare di mettere tutto il link intero invece che solamente la pagina interessata, diciamo sostituire l'index.php con browserko.php. Forse è più semplice e veloce il link intero però preferirei l'altra possibilità.
 

Discussioni simili