• Home
  • Forum
  • Hosting, Server e Sistemi
  • Web Server
  • Apache

.htaccess su Tophost

  • Creatore Discussione Creatore Discussione JtothaX
  • Data di inizio Data di inizio 21 Gen 2014
  • Tag Tag
    .htaccess file tophost
Prec.
  • 1
  • 2
  • 3
Succ.
Primo Prec. 2 di 3 Succ. Ultimo
J

JtothaX

Utente Attivo
2 Ott 2013
78
0
0
Treviso
  • 20 Apr 2014
  • #21
Non lo prende.
Oltretutto volevo rivedere le URL in questo modo:
http://www.miosito.it/index.php?moduo=blog --> http://www.miosito.it/blog.html (e così via per le altre pagine semplici)
mentre per gli articoli del blog, scremare ulteriormente lasciando solo il titolo
http://www.miosito.it/Titolo-del-post.html

Nella mia regola recuperava un parametro su 3 perchè...avevo incollato il codice da un generatore online, non masticando la materia, ecco.
 
J

JtothaX

Utente Attivo
2 Ott 2013
78
0
0
Treviso
  • 20 Apr 2014
  • #22
Okay, partiamo da una certezza.
Questo frammento qui me lo passa tranquillamente...
Codice:
RewriteRule ^([^/]*)\.html$ /index.php?modulo=$1 [L]
...e mi apporta la prima modifica che dicevo:
http://www.miosito.it/index.php?modulo=blog ---> http://www.miosito.it/blog.html
 

MMDesign

Utente Attivo
15 Apr 2014
76
0
0
Google Inc.
www.mmwebservice.it
  • 20 Apr 2014
  • #23
Ciao JthaX,
visto che vedo che ci stai provando ma senza risultato ti do una mano...

Penso sempre le cose si imparano sbagliando ed e perciò che ti ho lasciato fare

-------------------------------------

Da quello che ho capito tu vuoi nascondere varie informazioni inviate in $_GET dalla tua piattaforma.

// Prima di cominciare dobbiamo dire al motore che deve seguire le nostre regole.
Codice:
 RewriteEngine On

// Possiamo passare adesso all'inserimento delle varie informazioni che lui deve seguire quando vengono inviate delle richieste.

Codice:
RewriteRule quale-sia-la-richiesta    come-la-deve-interpretare

Un'esempio pratico,
Se abbiamo -> sito.it/news.php?id=1 e vogliamo nascondere il get e trasformare la richiesta come una pagina html :

Codice:
RewriteRule ^news-([0-9]+)\.html$ news.php?id=$1

Adesso ti spiego come funziona :

1. "^" comunica all'interprete l'inizio della stringa/regola
2. "news" e il nome della pagina seguito da un trattino + l'id della news passata in $_GET
3. "$" avvisiamo che la stringa finisce con .html
4. "$1" fa riferimento al parametro inviato in questo cado il campo id in $_GET.

Poi ci sono altre impostazioni che puoi implementare ma il mio consiglio e quello di imparare una cosa alla volta. In questo caso riesci a passare solo un valore se per caso devi passare due valori come per esempio :

news.php?cat=mondo&id=1

Allora il discorso e diverso bisogna interpretarlo in questa maniera :

Codice:
RewriteRule ^([a-z]+)/news-([0-9]+)\.html$ news.php?cat=$1&id=$2
 
J

JtothaX

Utente Attivo
2 Ott 2013
78
0
0
Treviso
  • 21 Apr 2014
  • #24
Ciao MMD,

grazie anche a te del sostegno, in effetti è da un po' che ci sto sbattendo il muso. Anche se ancora regna un bel caos.
Come appunto dicevo, qualcosa la capisco di come si imposta la regola etc.
E infatti sono partito da quella certezza sopra citata. Ora devo andare avanti ma non capisco perché non le piglia.
E poi, una volta fatti gli innesti, diciamo, col file .htaccess, devo rimettere mano al codice per riscriverli in modo tradizionale?
 
J

JtothaX

Utente Attivo
2 Ott 2013
78
0
0
Treviso
  • 21 Apr 2014
  • #25
Per sfizio ho provato il codice che mi hai girato tu.
Non funzia.

Resta quello postato da me 2-3 interventi fa...
Ora devo capire come fare per gli articoli del blog.
 

MMDesign

Utente Attivo
15 Apr 2014
76
0
0
Google Inc.
www.mmwebservice.it
  • 21 Apr 2014
  • #26
Molto strana come cosa perchè apache dovrebbe seguire le regole applicate dal file. Puoi postare il codice che usi attualmente ?
 
J

JtothaX

Utente Attivo
2 Ott 2013
78
0
0
Treviso
  • 21 Apr 2014
  • #27
MMDesign ha scritto:
Molto strana come cosa perchè apache dovrebbe seguire le regole applicate dal file. Puoi postare il codice che usi attualmente ?
Clicca per allargare...

Sicuro. Eccolo qui:
Codice:
RewriteEngine On
RewriteBase /htdocs/
RewriteRule ^([^/]*)\.html$ /index.php?modulo=$1 [L]

ErrorDocument 400 http://www.miosito.it/index.php?modulo=errore
ErrorDocument 401 http://www.miosito.it/index.php?modulo=errore
ErrorDocument 403 http://www.miosito.it/index.php?modulo=errore
ErrorDocument 404 http://www.miosito.it/index.php?modulo=errore
 

MMDesign

Utente Attivo
15 Apr 2014
76
0
0
Google Inc.
www.mmwebservice.it
  • 21 Apr 2014
  • #28
Codice:
RewriteEngine On
[B]RewriteBase /htdocs/[/B]
RewriteRule ^([^/]*)\.html$ /index.php?modulo=$1 [L]

ErrorDocument 400 http://www.miosito.it/index.php?modulo=errore
ErrorDocument 401 http://www.miosito.it/index.php?modulo=errore
ErrorDocument 403 http://www.miosito.it/index.php?modulo=errore
ErrorDocument 404 http://www.miosito.it/index.php?modulo=errore

Dovrebbe essere :

RewriteBase /htdocs
oppure
RewriteBase /

Poi dovresti pastarmi anche un'esempio di url dove ci sono le varie variabili passate in get per capire com'è l'url
 
J

JtothaX

Utente Attivo
2 Ott 2013
78
0
0
Treviso
  • 21 Apr 2014
  • #29
MMDesign ha scritto:
Codice:
RewriteEngine On
[B]RewriteBase /htdocs/[/B]
RewriteRule ^([^/]*)\.html$ /index.php?modulo=$1 [L]

ErrorDocument 400 http://www.miosito.it/index.php?modulo=errore
ErrorDocument 401 http://www.miosito.it/index.php?modulo=errore
ErrorDocument 403 http://www.miosito.it/index.php?modulo=errore
ErrorDocument 404 http://www.miosito.it/index.php?modulo=errore

Dovrebbe essere :
RewriteBase /htdocs
Clicca per allargare...

Quella è una specifica di Tophost. Così deve essere e così l'ho incollata dalle FAQ per non avere seccature.
Allora la trasformazione deve essere questa.

Attuale/ dinamico:
miosito.it/index.php?modulo=servizi [esempio]
miosito.it/index.php?modulo=blog&id_post=1&titolo=Titolo-del-post
miosito.it/index.php?modulo=portfolio&tab=vetrina

Devono diventare così:
http://www.miosito.it/servizi.html
http://www.miosito.it/portfolio/vetrina.html
http://www.miosito.it/Titolo-del-post-del-blog.html

Ecco, questa è la trasformazione che voglio operare.
Con il codice attuale funziona solo per il primo esempio fatto.
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
  • 22 Apr 2014
  • #30
JtothaX ha scritto:
Non lo prende.
Clicca per allargare...

Vero, rileggendo la regola mi sono accorto che l'ho scritta male.
Prova così:
Codice:
RewriteRule ^([^/]+)/([^/]+)/([^\.]+)\.html$ /index.php?modulo=$1&id_post=$2&titolo=$3 [L]

Per permetterti di aprire una url tipo:
Codice:
http://www.miosito.it/blog/5/Titolo-del-post.html

Che dovrebbe corrispondere a questa:
Codice:
http://www.miosito.it/index.php?modulo=blog&id_post=5&titolo=Titolo-del-post


Piccola info di teoria: se la tua url dinamica richiede 3 parametri (es: index.php?modulo=blog&id_post=5&titolo=Titolo-del-post) allora questi parametri dovranno essere presenti anche nella url statica, è per questo che la url risultante è simile a quella che ti ho scritto qui.
 
J

JtothaX

Utente Attivo
2 Ott 2013
78
0
0
Treviso
  • 22 Apr 2014
  • #31
flameseeker ha scritto:
Vero, rileggendo la regola mi sono accorto che l'ho scritta male.
Prova così:
Codice:
RewriteRule ^([^/]+)/([^/]+)/([^\.]+)\.html$ /index.php?modulo=$1&id_post=$2&titolo=$3 [L]
Per permetterti di aprire una url tipo:
Codice:
http://www.miosito.it/blog/5/Titolo-del-post.html
Che dovrebbe corrispondere a questa:
Codice:
http://www.miosito.it/index.php?modulo=blog&id_post=5&titolo=Titolo-del-post


Piccola info di teoria: se la tua url dinamica richiede 3 parametri (es: index.php?modulo=blog&id_post=5&titolo=Titolo-del-post) allora questi parametri dovranno essere presenti anche nella url statica, è per questo che la url risultante è simile a quella che ti ho scritto qui.
Clicca per allargare...

Nuooo, che schifo Orribile così.
Quindi devo rimettere mano al codice mio in quel caso, no?
Comunque inserendo la regola che mi dai tu arriva alla pagina in questione ma praticamente va in vacca (termine molto tecnico, lo so) tutta la formattazione coi CSS e francamente trovo la cosa grottesca.

Sta cosa del mod_rewrite mi sta facendo diventare i capelli bianchi.
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
  • 22 Apr 2014
  • #32
Significa che la regola ha funzionato bene, quanto ai css se non specifichi il percorso relativo dalla root, punteranno sicuramente su http://www.miosito.it/blog/5/style.css che ovviamente non esiste.

Per intenderci, invece di:
HTML:
<link href="style.css" ...

Dovresti dirgli:
HTML:
<link href="/path-to-css/style.css" ...


Se vuoi eliminare l'id numerico dalla tua url devi eliminarlo dallo script e devi usare come chiave univoca del post il suo titolo, in questo modo gli unici parametri che ti occorrono diventano blog e titolo del post e potrai quindi realizzare una url più pulita.
 
J

JtothaX

Utente Attivo
2 Ott 2013
78
0
0
Treviso
  • 22 Apr 2014
  • #33
Ahn, d'accordo, quindi, anche in proiezione futura, sempre meglio specificare tutta la trafila del link senza arrivare subito al sodo, in modo che se poi devo (far) riscrivere qualcosa con htaccess non inciampo in questi disguidi. Giusto?

Ora posso procedere allora con l'inserimento delle altre regole, in sintesi:
---

Pagine, diciamo, semplici:
Codice:
RewriteRule ^([^\.]+)\.html$ /index.php?modulo=$1 [L]
...per passare da miosito.it/index.php?modulo=quello-che-e ---> miosito.it/quello-che-e.html ...e pare funzioni.

Cosa devo accodare a questa regola? Queste qui di seguito, no?

Pagine del portfolio:
Codice:
RewriteRule ^([^/]+)/([^/]+)/([^\.]+)\.html$ /index.php?modulo=$1&tab=$2&limit=$3 [L]
...per passare da miosito.it/index.php?modulo=porfolio&tab=wordpress&limit=4 ---> miosito.it/porfolio/wordpress/4.html

Pagine, diciamo, derivate dal blog:
Codice:
RewriteRule ^([^/]+)/([^/]+)/([^\.]+)\.html$ /index.php?modulo=$1&id_post=$2&titolo=$3 [L]
...per passare da miosito.it/index.php?modulo=blog&id_post=5&titolo=Titolo-del-post ---> miosito.it/blog/5/Titolo-del-post.html

Una di seguito all'altra.
Sbaglio qualcosa?
 
J

JtothaX

Utente Attivo
2 Ott 2013
78
0
0
Treviso
  • 22 Apr 2014
  • #34
Ho testato questi e, formazzazione sballata a parte, funzionano.
Altre correzioni da fare secondo voi?

(è commentato perché devo fare altre limature al sito in generale)

Codice:
RewriteEngine On
RewriteBase /htdocs/

# Moduli standard
#RewriteRule ^([^/]*)\.html$ /index.php?modulo=$1 [L]

# Derivati del Portfolio
#RewriteRule ^portfolio/([^/]*)\.html$ /index.php?modulo=portfolio&tab=vetrina [L]
#RewriteRule ^portfolio/([^/]*)/([^/]*)\.html$ /index.php?modulo=portfolio&tab=$1&limit=$2 [L]

# Derivati dal Blog
#RewriteRule ^([^/]*)/([^/]*)/([^/]*)\.html$ /index.php?modulo=$1&id_post=$2&titolo=$3 [L]
#RewriteRule ^blog/([^/]*)\.html$ /index.php?modulo=blog&action=$1 [L]
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
  • 22 Apr 2014
  • #35
L'unica cosa che mi premeva di suggerirti l'hai recepita d'intuito, bravo.
Mi riferisco all'utilizzo delle parametriche fisse nella regex, tipo:
Codice:
RewriteRule ^blog/([^/]*)\.html$ /index.php?modulo=blog&action=$1 [L]

In questo modo come intuisci la regola di riscrittura entra in scena solo nel caso la tua url comincia con blog/... e non anche quando magari stai chiamando un vero file statico da un altra cartella.

Direi che così vai alla grande
 
J

JtothaX

Utente Attivo
2 Ott 2013
78
0
0
Treviso
  • 22 Apr 2014
  • #36
flameseeker ha scritto:
L'unica cosa che mi premeva di suggerirti l'hai recepita d'intuito, bravo.
Mi riferisco all'utilizzo delle parametriche fisse nella regex, tipo:
Codice:
RewriteRule ^blog/([^/]*)\.html$ /index.php?modulo=blog&action=$1 [L]

In questo modo come intuisci la regola di riscrittura entra in scena solo nel caso la tua url comincia con blog/... e non anche quando magari stai chiamando un vero file statico da un altra cartella.

Direi che così vai alla grande
Clicca per allargare...

Sì l'ho decisamente intuita.
Anche perché mi pare di aver capito che riscrive una regola ad una, nel senso che quelle troppo generiche poi finiscono col non funzionare. E' come con i bambini, bisogna proprio dirgli tutto



Ora però devo ritornare nel codice e fare le dovute sostituzioni, giusto?
Chiedo prima di cominciare così sono sicuro di non fare ancora danno. Non si sa mai.
Ahahahah
 
J

JtothaX

Utente Attivo
2 Ott 2013
78
0
0
Treviso
  • 22 Apr 2014
  • #37
Questa, ad esempio (paginazione automatica di prendi-prendi dal database), non la piglia.
Mi pare sia uguale alle altre, no?

Codice:
RewriteRule ^portfolio/([^/]*)/([^/]*)/([^/]*)\.html$ /index.php?modulo=portfolio&tab=$1&limit=$2&lastpag=$3 [L]
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
  • 22 Apr 2014
  • #38
Si la regexp presenta un errore:
Codice:
([^/]*)\.html

in questo punto gli dici di selezionare tutto finché non trova uno slash, ma di slash non ce ne sono più, per cui devi dirgli di prendere tutto fino al punto:
Codice:
([^\.]*)\.html
 
J

JtothaX

Utente Attivo
2 Ott 2013
78
0
0
Treviso
  • 22 Apr 2014
  • #39
Ah, c'hai ragione.
Ora ho cominciato a riscrivere le URL nel codice.

Non capisco perché se digito (manualmente io) l'indirizzo
miosito.it/portfolio/wordpress.html mi rimane su vetrina.html

...sulla paginazione poi sono riuscito a capirmi e penso di aver concluso con successo.
Manca giusto il passaggio da una "sottopagina" all'altra...

Oh, sottinteso come sempre: grazie a tutti, eh <3
 
J

JtothaX

Utente Attivo
2 Ott 2013
78
0
0
Treviso
  • 23 Apr 2014
  • #40
Come si suole dire: work in progress.
Le regole che riscrivono la parte di portfolio funzionano e funzionano tutte, finalmente.
Le ho incollate anche per la parte riguardante il blog ma, non so perché, questa volta non funzionano.
Eppure il meccanismo è/era il medesimo dall'inizio.
Mi sfugge qualcosa?

Codice:
RewriteEngine On
RewriteBase /htdocs/

# Moduli standard
RewriteRule ^([^/]*)\.html$ /index.php?modulo=$1 [L]

# Derivati del Portfolio
RewriteRule ^portfolio/([^/]*)\.html$ /index.php?modulo=portfolio&tab=$1 [L]
RewriteRule ^portfolio/vetrina/([^/.]*)\.html$ /index.php?modulo=portfolio&tab=vetrina&limit=$1 [L]
RewriteRule ^portfolio/vetrina/([^/]*)/ultima\.html$ /index.php?modulo=portfolio&tab=vetrina&limit=$1&lastpag=ultima
RewriteRule ^portfolio/facetabs/([^/.]*)\.html$ /index.php?modulo=portfolio&tab=facetabs&limit=$1 [L]
RewriteRule ^portfolio/facetabs/([^/]*)/ultima\.html$ /index.php?modulo=portfolio&tab=facetabs&limit=$1&lastpag=ultima
RewriteRule ^portfolio/wordpress/([^/.]*)\.html$ /index.php?modulo=portfolio&tab=wordpress&limit=$1 [L]
RewriteRule ^portfolio/wordpress/([^/]*)/ultima\.html$ /index.php?modulo=portfolio&tab=wordpress&limit=$1&lastpag=ultima

# Derivati dal Blog
RewriteRule ^([^/]*)/([^/]*)/([^/.]*)\.html$ /index.php?modulo=$1&id_post=$2&titolo=$3 [L]
RewriteRule ^blog/viewall\.html$ /index.php?modulo=blog&action=viewall [L]
[B]RewriteRule ^blog/viewall/([^/.]*)\.html$ /index.php?modulo=blog&action=viewall&limit=$1 [L][/B]
RewriteRule ^blog/viewall/([^/]*)/ultima\.html$ /index.php?modulo=blog&action=viewall&limit=$1&lastpag=ultima [L]

Mi sa che a fine topic riassumerò tutto in una piccola guida per i posteri.
Non vorrei qualcun altro si dannasse fino a questo punto al posto mio...
 
Ultima modifica: 23 Apr 2014
Prec.
  • 1
  • 2
  • 3
Succ.
Primo Prec. 2 di 3 Succ. Ultimo
Devi accedere o registrarti per poter rispondere.

Discussioni simili

Proteggere una cartella e file con password tramite .htaccess e .htpasswd
  • otto9due
  • 7 Dic 2022
  • Web Server
Risposte
0
Visite
1K
Web Server 7 Dic 2022
otto9due
G
  • Bloccata
Aiuto con htaccess e rewriterule
  • gssmart
  • 28 Ott 2020
  • PHP
Risposte
0
Visite
1K
PHP 28 Ott 2020
gssmart
G
htaccess redirect 301 senza estensione html
  • Cosina
  • 1 Lug 2020
  • Web Server
Risposte
6
Visite
3K
Web Server 28 Ago 2020
Cosina
htaccess: redirect da una subdirectory alla root
  • felino
  • 9 Ott 2019
  • Web Server
Risposte
2
Visite
3K
Web Server 10 Nov 2019
felino
A
[PHP] redirect htaccess
  • avatar
  • 15 Set 2019
  • PHP
Risposte
5
Visite
2K
PHP 18 Set 2019
mr.x
M
Z
Sottodomini e sottocartelle con Apache2 e Htaccess
  • zagorcico
  • 14 Giu 2019
  • Apache
Risposte
0
Visite
2K
Apache 14 Giu 2019
zagorcico
Z
[Htaccess] Redirect per url non esistente
  • felino
  • 1 Apr 2019
  • Apache
Risposte
1
Visite
2K
Apache 2 Apr 2019
felino
Z
HTACCESS e PHP MOD_REWRITE
  • z.cristiano
  • 8 Gen 2019
  • PHP
Risposte
0
Visite
1K
PHP 8 Gen 2019
z.cristiano
Z
G
[PHP] Sottodomini con .htaccess
  • GGG
  • 21 Dic 2018
  • PHP
Risposte
1
Visite
2K
PHP 21 Dic 2018
macus_adi
P
htaccess ed espressioni regolari
  • petingros
  • 27 Nov 2018
  • Apache
Risposte
0
Visite
2K
Apache 27 Nov 2018
petingros
P
F
htaccess e redirect 301
  • FilippoQ
  • 9 Nov 2018
  • Apache
Risposte
0
Visite
2K
Apache 9 Nov 2018
FilippoQ
F
W
Errore su Htaccess, mi reindirizza sempre ad una sola regola
  • w_t
  • 1 Set 2018
  • Apache
Risposte
0
Visite
1K
Apache 1 Set 2018
w_t
W
Creare file .htaccess per risolvere alcuni problemi con il tester SEO
  • andreas88
  • 28 Mag 2018
  • SEO e Posizionamento
Risposte
0
Visite
2K
SEO e Posizionamento 28 Mag 2018
andreas88
P
Cerco esperto htaccess
  • PaloAlto
  • 10 Apr 2018
  • Offerte e Richieste di Lavoro e/o Collaborazione
Risposte
0
Visite
2K
Offerte e Richieste di Lavoro e/o Collaborazione 10 Apr 2018
PaloAlto
P
[WordPress] Gestire SSL (https://) da .htaccess
  • bubino8
  • 6 Apr 2018
  • WordPress
Risposte
9
Visite
2K
WordPress 10 Apr 2018
bubino8
O
[PHP] Conflitto tra regole nel file htaccess
  • Ogum
  • 27 Mar 2018
  • PHP
Risposte
10
Visite
2K
PHP 27 Mar 2018
Ogum
O
I
Url rewrite con .htaccess funziona ma poi mostra indirizzo "reale" nella barra di navigazione
  • Ipier74
  • 21 Mar 2018
  • Apache
Risposte
1
Visite
4K
Apache 27 Lug 2018
marcolib899
M
M
htaccess
  • marcoz
  • 27 Feb 2018
  • Apache
Risposte
0
Visite
1K
Apache 27 Feb 2018
marcoz
M
D
Aggiungere slash finale ad URL con .htaccess
  • ducadimantova
  • 15 Nov 2017
  • Web Server
Risposte
2
Visite
3K
Web Server 2 Gen 2018
ducadimantova
D
F
Regola Htaccess
  • Fabio90
  • 24 Lug 2017
  • SEO e Posizionamento
Risposte
7
Visite
2K
SEO e Posizionamento 25 Lug 2017
mr.x
M
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Hosting, Server e Sistemi
  • Web Server
  • Apache
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?