Visualizzazione dei risultati da 1 a 8 su 8

Discussione: URL Rewrite

  1. #1

    URL Rewrite

    Salve,
    mi servirebbe un piccolo scriptino in php che funzioni come segue:
    gli arriva una richiesta del tipo
    "http://sito.ext/&parametri..."
    e la trasforma in
    "http://www.sito.ext/&parametri..."

    in pratica, aggiunga il www e "reindirizzi" a tale pagina la richiesta.
    Per ora ho fatto questo:

    Codice PHP:
    <?php $server $_SERVER['SERVER_NAME']; header('Location: http://www.' $server); ?>
    ma funziona solo per la "root": appena metto sottodirectory, parametri o pagine interne non va.
    Mi sapete dare una mano?

  2. #2
    Per "forzare" il dominio www.* solitamente utilizzo queste regole:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\.domain\.ext$ [NC]
    RewriteRule ^(.*)$ http://www.domain.ext/$1 [R=301,L]

  3. #3
    Originariamente inviato da filippo.toso
    Per "forzare" il dominio www.* solitamente utilizzo queste regole:
    Grazie..
    il tutto mi servirebbe da mettere in una pagina PHP, ma credo che quell'htaccess non vada bene...
    In pratica mi serve un "redirect wild card" da "http://sito.exe/*" a "http://www.sito.ex/*" per qualunque valore di * in PHP

  4. #4
    Perchè non vuoi usare mod_rewrite?

    In ogni caso, è piuttosto semplice. Prova un codice tipo questo:

    Codice PHP:
    <?php

    $url 
    = (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] != 'off')) ? 'https://' 'http://';
    $url .= (substr($_SERVER['HTTP_HOST'], 04) != 'www.') ?  'www.' $_SERVER['HTTP_HOST'] : $_SERVER['HTTP_HOST'];
    $url .= (isset($_SERVER['REQUEST_URI'])) ? $_SERVER['REQUEST_URI'] : $_SERVER['PHP_SELF'];

    header("Location: {$url}");

    ?>

  5. #5
    Originariamente inviato da filippo.toso
    Perchè non vuoi usare mod_rewrite?

    In ogni caso, è piuttosto semplice. Prova un codice tipo questo:

    Codice PHP:
    <?php

    $url 
    = (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] != 'off')) ? 'https://' 'http://';
    $url .= (substr($_SERVER['HTTP_HOST'], 04) != 'www.') ?  'www.' $_SERVER['HTTP_HOST'] : $_SERVER['HTTP_HOST'];
    $url .= (isset($_SERVER['REQUEST_URI'])) ? $_SERVER['REQUEST_URI'] : $_SERVER['PHP_SELF'];

    header("Location: {$url}");

    ?>
    Mai detto che non voglio usarlo ho PHP e tutto apache a mia disposizione, ma non sono molto pratico, quindi se mi spiegate come farlo ve ne sarei molto grato ! (io e tutti i clienti tophost)
    Precisazione: ovviamente devo fare solo un redirect, il sito NON sta sul mio pc dove gira questo apache...
    Nel frattempo.. provo la tua soluzione. Grazie mille!

    NOVITA': niente, la soluzione proposta non va. Per alcune pagine funziona, per altre no.
    Ad es se carico la root http://mtbvulture.net funziona, se carico http://mtbvulture.net/downloads.html o http://mtbvulture.net/iscrizioni/iscrizioni2008.php mi da "pagina non trovata".... mi sto esaurendo! CMQ se con apache e modrewrite è più facile, vi sarei grato se mi spiegaste come fare...

  6. #6
    Originariamente inviato da filippo.toso
    Per "forzare" il dominio www.* solitamente utilizzo queste regole:
    Ok, ho provato il codice
    Codice PHP:
    RewriteEngine On RewriteCond %{HTTP_HOST} !^www\.domain\.ext$ [NCRewriteRule ^(.*)$ [url]http://www.domain.ext/[/url]$1 [R=301,L] 
    e funziona.
    Vorrei sapere ora: è possibile renderlo indipendente dal dominio, prendendo "domain.ext" dalla richiesta http invece che specificandolo "a mano"?
    E poi... c'è qualcosa simile a .htaccess in IIS?
    Grazie ancora a tutti!

  7. #7
    Originariamente inviato da filippo.toso
    Per "forzare" il dominio www.* solitamente utilizzo queste regole:
    E per forzare il www. ma non se esiste un altro hostname?

    Ad esempio forzarlo per domain.ext ma non per host.domain.ext?
    Ciao!

  8. #8
    Originariamente inviato da fmortara
    E per forzare il www. ma non se esiste un altro hostname?

    Ad esempio forzarlo per domain.ext ma non per host.domain.ext?
    Ok, scusate il reply, ma ho risolto...

    codice:
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^!([a-z.]+)?domain\.it$ [NC] 
    RewriteCond %{HTTP_HOST} !^www\. [NC] 
    RewriteRule .? http://www.domain.it%{REQUEST_URI} [R=301,L]
    Ciao!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.