• User Newbie

    ciao e grazie per essere stato il primo a rispondere...purtroppo non l'ho evidenziato nella descrizione del problema e uno che non giarda attentamente il codice fà il tuo ragionamento. in realtà il codice del sottodominio en fà un redirect al sito principale www spero di essere stato chiaro.


  • Super User

    Credevo che dominio e sottodomini avessero la stessa Document Root


  • User Newbie

    Ciao ayrton, io sono un pò ignorante in modrewrite ho fatto sempre tutto da autodidatta andando un pò a tentativi. i file e le cartelle del sito sono le stesse per entrambe le lingue poi tramite codice php/mysql e la variabile lan vengono caricati i contenuti della lingua desiserata. spero che mi riesci a dare una mano anche riscrivendo le righe relative alla lingua come mi consiglieresti tu.
    grazie


  • Super User

    Prova aggiungendo alla regola:

    RewriteRule ^(.*)$ $1?lan=%1&%{QUERY_STRING} ****
    

  • Super User

    Scusami, rileggendo credo che il problema sia dato dal fatto che manca lo slash iniziale:

    RewriteRule ^(.*)$ **/**$1?lan=%1&%{QUERY_STRING}
    

  • User Newbie

    nada
    mettendoci la rimane sempre nella home page
    aggiugendoci lo / mi dà sempre errore 500

    possibile che sia talmente complicato? io prima tutilizzavo questo codice qui ma mi scoccio di dover aggiungere ogni volta la categoria:

    
    # MULTILINGUAL SUBDOMAIN SETTINGS
    RewriteCond %{HTTP_HOST} ^(en|it)\.doctmag\.com
    RewriteRule ^(.*)$ $1?lan=%1&%{QUERY_STRING}
    
    
    RewriteRule ^medicina-specialistica/page/(.*)$ /index.php?cat=medicina-specialistica&page=$1 [QSA,L]
    RewriteRule ^medicina-specialistica/(.*)$ /index.php?cat=medicina-specialistica&art=$1 [QSA,L]
    
    

    considera che le ultime 2 righe vanno fatte per ogni categoria del sito 4 volte la prima per la categoria e la seconda per gli articoli interni e entrambe in 2 lingue


  • Super User

    Le ultime regole che hai postato si "generalizzano" così:

    
    RewriteRule ^(.*)/page/(.*)$ /index.php?cat=$1&page=$2 [QSA,L]
    RewriteRule ^(.*)/(.*)$ /index.php?cat=$1&art=$2 [QSA,L]
    
    

  • User Newbie

    Ayrton mi sono dimenticato che c'è un altra regola da genralizzare

    RewriteRule ^medicina-specialistica /index.php?cat=medicina-specialistica [QSA,L]

    si geenralizza così?

    RewriteRule ^(.*)$ /index.php?cat=$1 [QSA,L]


  • Super User

    Si, da mettere però come ultima regola.


  • User Newbie

    ciao ayrton purtroppo stò continuando ad impazzire ma il problema non si risolve...ripartiamo da 0 allora devo creare un file ht access che mi generalizzi la seguente regola

    
    RewriteRule ^network /(.*)$ /index.php?cat=network &art=$1 [QSA,L]
    
    RewriteRule ^network /index.php?cat=network [QSA,L]
    
    

    le ho generalizzate così e non ci sono problemi:

    
    Options +FollowSymlinks
    RewriteEngine on
    
    ErrorDocument 404 /
    
    RewriteCond %{REQUEST_URI} !^(.*)/rss/(.*)$
    RewriteRule ^([^/\.]+)/([^/\.]+)/?$ /index.php?cat=$1&art=$2 [QSA,L]
    RewriteRule ^([^/\.]+)/?$ /index.php?cat=$1 [QSA,L]
    
    

    il rpoblema si viene a creare quando voglio passare la variabile di linguaggio it in caso di collegamento al sottodominio it.ganeshcom.com con il seguente codice...la categoria funziona ma la sottocategoria no

    
    Options +FollowSymlinks
    RewriteEngine on
    
    # MULTILINGUAL SUBDOMAIN SETTINGS
    RewriteCond %{HTTP_HOST} ^(it)\.ganeshcom\.com
    RewriteRule ^(.*)$ $1?lan=%1&%{QUERY_STRING}
    
    ErrorDocument 404 /
    
    RewriteCond %{REQUEST_URI} !^(.*)/rss/(.*)$
    RewriteRule ^([^/\.]+)/([^/\.]+)/?$ /index.php?cat=$1&art=$2 [QSA,L]
    RewriteRule ^([^/\.]+)/?$ /index.php?cat=$1 [QSA,L]
    
    

    è come se la parte di codice relativa al sottodominio multilingua non passasse bene la categoria+sottocategoria separate da / e il server mi restituisce errore 500

    se utilizzo le stringhe generalizzate da te

    
    RewriteRule ^(.*)/(.*)$ /index.php?cat=$1&art=$2 [QSA,L]
    RewriteRule ^(.*)$ /index.php?cat=$1 [QSA,L]
    
    

    mi dà sempre errore 500

    infine ho anche provato ad utilizzare questa stringa

    RewriteRule ^([^/\.]+)$ $1?lan=%1&%{QUERY_STRING}
    

    funziona tutto ma non mi passa la variabile lan
    ❌x❌x❌x❌x❌x

    GRAZIE DI CUORE SE SARAI SEMPRE COSì GENTILE DA PROVARE A DARMI UNA MANO


  • Super User

    Prova cosi:

    
    Options +FollowSymlinks
    RewriteEngine on
    
    # MULTILINGUAL SUBDOMAIN SETTINGS
    RewriteCond %{HTTP_HOST} ^it.ganeshcom.com
    RewriteCond %{REQUEST_URI} !^(.*)/rss/(.*)$
    RewriteRule ^([^/\.]+)/([^/\.]+)/?$ /index.php?cat=$1&art=$2&lan=it [QSA,L]
    RewriteRule ^([^/\.]+)/?$ /index.php?cat=$1&lan=it [QSA,L]
    
    RewriteCond %{HTTP_HOST} ^www.ganeshcom.com
    RewriteCond %{REQUEST_URI} !^(.*)/rss/(.*)$
    RewriteRule ^([^/\.]+)/([^/\.]+)/?$ /index.php?cat=$1&art=$2 [QSA,L]
    RewriteRule ^([^/\.]+)/?$ /index.php?cat=$1 [QSA,L]
    
    ErrorDocument 404 /
    
    

  • User Newbie

    così abbiamo sistemato alcune cose e rovinato altre :fumato: ho dovuto fare delle picole modifiche: ho aggiunto la lingua inglese a www e ho eliminato le righe relative all'rss che sono ininfluenti:

    
    Options +FollowSymlinks
    RewriteEngine on
    
    # MULTILINGUAL SUBDOMAIN SETTINGS
    RewriteCond %{HTTP_HOST} ^it.ganeshcom.com
    RewriteRule ^([^/\.]+)/([^/\.]+)/?$ /index.php?cat=$1&art=$2&lan=it [QSA,L]
    RewriteRule ^([^/\.]+)/?$ /index.php?cat=$1&lan=it [QSA,L]
    
    RewriteCond %{HTTP_HOST} ^www . ganeshcom.com
    RewriteRule ^([^/\.]+)/([^/\.]+)/?$ /index.php?cat=$1&art=$2&lan=en [QSA,L]
    RewriteRule ^([^/\.]+)/?$ /index.php?cat=$1&lan=en [QSA,L]
    
    ErrorDocument 404 /
    
    

    ora i problemi che si verificano sono 2:

    • nella home page italiana rimane la lingua inglese
    • nella categoria inglese rimane la liguia italiana

    ti disturbo quest'ultima volta se no proverò soluzioni alternative (come recuperare il sottodominio tramite php ) ...grazie


  • Super User

    @emiliano84 said:

    ora i problemi che si verificano sono 2:

    • nella home page italiana rimane la lingua inglese
    • nella categoria inglese rimane la liguia italiana

    La home page è nella forma "/" oppure "/index.html" o altra?
    @emiliano84 said:

    ti disturbo quest'ultima volta se no proverò soluzioni alternative (come recuperare il sottodominio tramite php ) ...grazie
    Nessun disturbo. In PHP puoi fare benissimo cosi:
    splitti $_SERVER['HTTP_HOST'] tramite il "." ed il primo valore dell'array sarà "www" oppure "it".


  • User Newbie

    sono stato talmente impegnato che ho dimenticato di segnalarvi che ho risolto definitamente con il seguente codice:

    Options +FollowSymlinks
    RewriteEngine on
    RewriteBase    /
    
    RewriteRule ^([^/\.]+)/page/([^/\.]+)/?$ /index.php?cat=$1&page=$2 [QSA,L]
    RewriteRule ^([^/\.]+)/([^/\.]+)/?$ /index.php?cat=$1&art=$2 [QSA,L]
    RewriteRule ^([^/\.]+)/?$ /index.php?cat=$1 [QSA,L]
    

    prendendomi il codice della lingua tramite php http_post

    grazi mille per l'aiuto ayrton