Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150

    Rewrite rule in locale...non funziona

    Premetto che di configurazione di Linux, conosco poco o nulla e premetto anche che che sul sito on-line funziona tutto perfettamente, ma siccome dovrei fare una modifica alle regole del "rewrite", ho riportato tutto in locale (ambiente Ubuntu, Apache, Php, Mysql funzionante...)

    Ho lanciato il seguente comando ed eseguito il restart.
    codice:
    sudo a2enmod rewrite
    sudo /etc/init.d/apache2 restart
    Inoltre ho messo
    codice:
    AllowOverride All
    in tutte le occorrenze del file /etc/apache2/sites-enabled/000-default
    codice:
    <VirtualHost *:80>
            ServerAdmin webmaster@localhost
    
            DocumentRoot /home/paolo/public_html/
            <Directory />
                    Options FollowSymLinks
                    AllowOverride All
            </Directory>
            <Directory /home/paolo/public_html/>
                    Options Indexes FollowSymLinks MultiViews
                    AllowOverride All
                    Order allow,deny
                    allow from all
            </Directory>
    
            ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
            <Directory "/usr/lib/cgi-bin">
                    AllowOverride All
                    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                    Order allow,deny
                    Allow from all
            </Directory>
    
            ErrorLog ${APACHE_LOG_DIR}/error.log
    
            # Possible values include: debug, info, notice, warn, error, crit,
            # alert, emerg.
            LogLevel warn
    
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    
        Alias /doc/ "/usr/share/doc/"
        <Directory "/usr/share/doc/">
            Options Indexes MultiViews FollowSymLinks
            AllowOverride All
            Order deny,allow
            Deny from all
            Allow from 127.0.0.0/255.0.0.0 ::1/128
        </Directory>
    
    </VirtualHost>

    Il file .htaccess è semplicemente questo

    codice:
    AddType text/css .css
    Options -Indexes +FollowSymLinks
    
    RewriteEngine on
    RewriteRule ^([^/]*)\.shtml$ index.php?coditipo=$1
    RewriteRule ^([^/]*)/([^/]*)\.shtml$ index.php?coditipo=$1&codisubbtipo=$2
    RewriteRule ^([^/]*)/([^/]*)/([^/]*)\.shtml$ index.php?coditipo=$1&codisubbtipo=$2&codipost=$3 [L]
    ma non funziona il rewrite.
    Se digito infatti http://localhost, chiaramente mi carica l'index.php, ma se clicco su uno dei link del tipo http://localhost/3/2/2.shtml mi ritorna l'errore

    codice:
    The requested URL /3/2/2.shtml was not found on this server.
    Qualche suggerimento?
    Grazie in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Io uso pure i rewrite su linux e funziona perfettamente.
    Sinceramente non so cosa dirti.
    Ti posso solo postare il mio 000-default:
    codice:
    <VirtualHost *:80>
    	ServerAdmin webmaster@localhost
    
    	DocumentRoot /var/www
    	<Directory />
    		Options FollowSymLinks
    		AllowOverride all
    	</Directory>
    	<Directory /var/www/>
    		Options Indexes FollowSymLinks MultiViews
    		AllowOverride all
    		Order allow,deny
    		allow from all
    	</Directory>
    
    	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    	<Directory "/usr/lib/cgi-bin">
    		AllowOverride None
    		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    		Order allow,deny
    		Allow from all
    	</Directory>
    
    	ErrorLog ${APACHE_LOG_DIR}/error.log
    
    	# Possible values include: debug, info, notice, warn, error, crit,
    	# alert, emerg.
    	LogLevel warn
    
    	CustomLog ${APACHE_LOG_DIR}/access.log combined
    
        Alias /doc/ "/usr/share/doc/"
        <Directory "/usr/share/doc/">
            Options Indexes MultiViews FollowSymLinks
            AllowOverride None
            Order deny,allow
            Deny from all
            Allow from 127.0.0.0/255.0.0.0 ::1/128
        </Directory>
    
    </VirtualHost>

    Fai una prova e fammi sapere.









    Ps: dovevi postare in Server...

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Originariamente inviato da simo22
    ...
    Grazie per la risposta, pero' l'unica cosa che cambia nel tuo file, rispetto al mio, e' la dir locale.

    Tu hai inserito
    codice:
    /var/www
    Io invece
    codice:
    /home/paolo/public_html/
    Non credo quindi che sia qui il problema...


    Ps: dovevi postare in Server...
    Ops...
    L'amministratore può cambiare di sezione al3D?

    Grazie ancora.

  4. #4
    Le rule mi sembrano corrette, non e' che il tutto sta in una sottodirectory della document root?

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Originariamente inviato da k.b
    Le rule mi sembrano corrette, non e' che il tutto sta in una sottodirectory della document root?
    Immaginando proprio quello che hai scritto te, la pagina index.php sta proprio nella document root (a cui ho tolto lo "/" finale dopo aver visto il codice inserito da simo22 - e ho riavviato apache).

    Per conferma, se digito
    http://localhost

    l'index della pagina me lo apre.

    Quello che non capisco è quale configurazione e' differente rispetto al server on-line, dove il tutto funziona perfettamente...

    Potrebbe essere un problema di permessi di qualche file o directory?

    Grazie ancora per tutte le risposte.

  6. #6
    Oltre al file .htaccess con il nome sbagliato o non presente nella documentroot, altro non mi viene in mente.
    Prova a mettere intenzionalmente un errore nell'.htaccess e vedi se ottieni un internal server error (almeno sai che il file viene letto).

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Originariamente inviato da k.b
    Oltre al file .htaccess con il nome sbagliato o non presente nella documentroot, altro non mi viene in mente.
    Prova a mettere intenzionalmente un errore nell'.htaccess e vedi se ottieni un internal server error (almeno sai che il file viene letto).
    In effetti pare che non lo legga.

    Ho infatti modificato così.

    codice:
    AddType text/css .css
    
    
    Optionsxxyyyy -Indexes +FollowSymLinks
    RewriteEngine on
    RewriteRulex ^([^Saasdasdadsad/]*)\.shtml$ index.php?coditipo=$1 
    RewriteRulex ^([^/]*)/([^/]*)\.shtml$ index.php?coditipo=$1&codisubbtipo=$2
    RewriteRulex ^([^/]*)/([^/]*)/([^/]*)\.shtml$ index.php?coditipo=$1&codisubbtipo=$2&codipost=$3 [L]
    E mi da sempre l'errore 404 not found...

  8. #8
    Prova ad impostare
    codice:
    RewriteBase /
    prima delle RewriteRule
    La verita' è che... tu sei il debole, e io sono la tirannia degli uomini malvagi, ma ci sto provando ringo, ci sto provando con grandissima fatica a diventare il pastore..

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Originariamente inviato da 8matt5
    Prova ad impostare
    codice:
    RewriteBase /
    prima delle RewriteRule
    Nemmeno il tuo suggerimento funziona.

    AddType text/css .css

    Options -Indexes +FollowSymLinks

    RewriteEngine on

    RewriteBase /

    RewriteRule ^([^/]*)\.shtml$ index.php?coditipo=$1
    RewriteRule ^([^/]*)/([^/]*)\.shtml$ index.php?coditipo=$1&codisubbtipo=$2
    RewriteRule ^([^/]*)/([^/]*)/([^/]*)\.shtml$ index.php?coditipo=$1&codisubbtipo=$2&codipost=$3 [L]
    Non so che fare per risolvere...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.