- Home
- Categorie
- Coding e Sistemistica
- Hosting, Server e Domini
- Url rewrite con apache che gira sotto windows
-
non so se possa essere d'aiuto ma tutto il pacchetto l'ho installato con AppServ
la directory sul mio pc è C:\AppServ\Apache2.2
non so davvero cosa fare per fare qualche semplice test con il mod rewrite
-
@gustoinrete said:
salve sto facendo alcune prove stupidissime con il mod_rewrite su apache che gira sotto windows...
allora la struttura del sito dove sto facendo le prove è la seguente
http://localhost/imm/scheda_articolo.php?ida=2il file htaccess l'ho messo nella directory http://localhost/imm/
e il file è molto semplice
RewriteEngine on
RewriteRule ^titolo_articolo.html scheda_articolo.php?ida=$1&%{QUERY_STRING}mi bastava fare una prova
però non mi cambia il nome sulla barra degli indirizzi (ma la pagina funziona correttamente)
avviso che il mod_rewrite è attivo tra i vari moduli (l'ho verificato eseguendo phpinfo())la sintassi è sbagliata....
dev'essere RewriteRule ^titolo_articolo.html$ scheda_articolo.php?ida=$0
non capisco il senso di quel {QUERY_STRING} alla fine, così facendo invalidi solo la query string da passare a scheda_articolo.php
inoltre usando ^titolo_articolo.html$ la variabile $1 sarà vuota perchè l'espressione regolare genera un unico gruppo
nel tuo caso devi usare $0 la quale conterrà il nome della pagina digitata nel browser, nome che sarà disponibile nello script php sotto la variabile ida
-
quell'esempio è stato abbandonato da un bel pezzo
non riesco nemmeno a far girare questa
**RewriteEngine On
RewriteRule ^topolino.htm pippo.htm **ci sono dei problemi con apache
-
@gustoinrete said:
quell'esempio è stato abbandonato da un bel pezzo
non riesco nemmeno a far girare questa
**RewriteEngine On
RewriteRule ^topolino.htm pippo.htm **ci sono dei problemi con apache
c'è un errore di sintassi anche in questa....
l'espressione regolare deve iniziare con ^ e finire con $
quindi dev'essere RewriteRule ^topolino.htm$ pippo.htm
-
l'ho modificata
RewriteRule ^topolino.htm$ pippo.htm
ma comunque mi dice file non trovato se provo a collegarmi a
http://localhost/imm/topolino.htm
-
@gustoinrete said:
l'ho modificata
RewriteRule ^topolino.htm$ pippo.htm
ma comunque mi dice file non trovato se provo a collegarmi a
http://localhost/imm/topolino.htma questo punto mi viene un dubbio, ma Apache è in ascolto sulla porta 80 ?
se provi a fare http://localhost/ cosa esce?
-
certo mi esce la pagina
The AppServ Open Project - 2.5.9 for Windowsinoltre se lancio la phpinfo() vedo tra i moduli caricati il modulo mod_rewrite
e php funziona senza problemi (inserimento dati db caricamento files etc etc)
-
a questo punto l'unica possibilità è che il file scheda_articolo.php non ha i permessi di esecuzione
-
no ma adesso il problema riguarda la pagina
RewriteRule ^topolino.htm$ pippo.htm
e la pagina pippo.htm viene vista regolarmente quindi non ci sono problemi di permessi di esecuzione
-
Secondo me, se sei sicuro di tutto quanto scritto fin qui, in questo thread, il problema è nel modulo mod_rewrite.so... Prova a scaricarti il file aggiornato, riavvia apache e vedi se trovi differenze.
-
@gustoinrete said:
no ma adesso il problema riguarda la pagina
RewriteRule ^topolino.htm$ pippo.htm
e la pagina pippo.htm viene vista regolarmente quindi non ci sono problemi di permessi di esecuzione
no un momento.....la pagina pippo.htm viene vista?
se digiti http://localhost/topolino.htm cosa vedi?
-
pippo.htm la vede, ma topolino.htm no... :bho:
Credo sia un problema proprio del mod_rewrite...: che tu sappia paolino, visto che conosci meglio di me apache, può essere un problema di una versione datata di mod_rewrite che non gira con apache 2.2*?*
-
@ceccus said:
pippo.htm la vede, ma topolino.htm no... :bho:
Credo sia un problema proprio del mod_rewrite...: che tu sappia paolino, visto che conosci meglio di me apache, può essere un problema di una versione datata di mod_rewrite che non gira con apache 2.2*?*
è possibile, ma in questo caso da dove ha preso Apache? in genere mod_rewrite è fornito con Apache....
esattamente hai installato Apache da solo o tramite WAMP o EasyPHP?
-
scusate per il ritardo...
allora ho scaricato una mega applicazione che con un paio di colpi di click mi ha installato tutto mysql, php, phpmyadmin, apache etc etc .
l'applicazione se non erro si chiama
The AppServ Open Project - 2.5.9 for Windowsspero possiate darmi una mano io davvero non ho idea di come risolvere
-
ragazzi non ho trovato il file da scaricare ma dubito che sia quel file il problema
vi passo un paio di righe del httpd.conf magari è una questione di directory non lo so sinceramenteDocumentRoot: The directory out of which you will serve your
documents. By default, all requests are taken from this directory, but
symbolic links and aliases may be used to point to other locations.
DocumentRoot "C:/AppServ/www"
Each directory to which Apache has access can be configured with respect
to which services and features are allowed and/or disabled in that
directory (and its subdirectories).
First, we configure the "default" to be a very restrictive set of
features.
<Directory />
Options FollowSymLinks ExecCGI Indexes
AllowOverride All
Order deny,allow
Deny from all
Satisfy all
</Directory>Note that from this point forward you must specifically allow
particular features to be enabled - so if something's not working as
you might expect, make sure that you have specifically enabled it
below.
This should be changed to whatever you set DocumentRoot to.
<Directory "C:/AppServ/www">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named explicitly --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks MultiViews ExecCGI
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride All
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
</Directory>DirectoryIndex: sets the file that Apache will serve if a directory
is requested.
<IfModule dir_module>
DirectoryIndex index.php index.html index.htm
</IfModule>The following lines prevent .htaccess and .htpasswd files from being
viewed by Web clients.
<FilesMatch "^.ht">
Order allow,deny
Deny from all
</FilesMatch>
-
da quello che è scritto lì i file vanno messi in C:\AppServ\www
il resto non sembra mostrare problemi
-
in effetti il file htaccess è posizionato qui
C:\AppServ\www\imm\htaccessbho
-
@gustoinrete said:
in effetti il file htaccess è posizionato qui
C:\AppServ\www\imm\htaccessbho
il file .htaccess è posizionato in imm ma i file .php e .html sono in www?
inoltre sei sicuro che Apache vada a cerca htaccess invece di .htaccess? per fare questo cambiamento dovresti cambiare la configurazione di Apache
-
la struttura è la seguente
C:\AppServ\www\imm\htaccess
C:\AppServ\www\imm\pippo.htmimm è la cartella all'interno della quale sto sviluppando il tutto
... per quanto riguarda il punto davanti ad htaccess ho cambiato l'impostazione per via del fatto che non riuscivo a mettere il punto davanti al nome del file allora dall'httpd.conf ho modificato la riga di codice
AccessFileName .htaccess
in
AccessFileName htaccess
-
in giro ho trovato anche questa riga di codice
AddModule mod_rewrite.c
ho provato ad inserirla nell'httpd.conf ma non cambia nullaragazzi sono disperato