- Home
- Categorie
- La Community Connect.gt
- Tutto sulla Community
- .htaccess per più files?
-
.htaccess per più files?
Buongiorno, di seguito una domanda alla quale non ho trovato risposta durante le mie ricerche.
Ho capito come impostare il file .htaccess per visualizzare permalink personalizzati, nella fattispece per ciò che serve a me è sufficente:RewriteBase /
RewriteEngine On
RewriteRule ([^/]+).html$ index.php?p=$1Il problema nasce quando da un'elenco articoli devo suddividere le pagine, quindi passando un'altra variabile GET, ed ho così modificato il permalink, e tutto funziona:
RewriteRule ([^/]+)_([^/]+).html$ index.php?p=$1&page=$2
Ma mi esce sempre e comunque il numero di pagina (la variabile $2), anche quando è la prima, cosa molto antipatica, sarebbe bello che i link fossero così:
sito.com/argomento (pagina 1)
sito.com/argomento_5 (pagina 5)Sarà mai possibile?
Si devono impostare le condizioni?
Da quel che ho trovato le condizioni servono ad altro...E poi ancora, attraverso index.php, genero pagine di ogni genere, da un'elenco prodotti ad un'anagrafica utenti, quindi passo parecchie variabili, nel caso dei prodotti possono essere 2 o 3, mentre per le anagrafiche solo 2, ma, indipendentemente da ciò che voglio vedere devo impostare il permalink prevedento tutte le variabili, e se sono vuote mi restituisce ovviamente errore.
Pensavo quindi di impostare index.php in un modo, e ad esempio articoli.php in un'altro:RewriteRule ([^/]+)_([^/]+).html$ index.php?p=$1&page=$2
RewriteRule ([^/]+).html$ articoli.php?art=$1Non mi funziona ovviamente, in quanto dall'url non riesco a capire che pagina è; c'è un modo per assegnare a pagine diverse (files diversi) impostazioni diverse?
In altrenativa posso creare directory "vere" dove impostare un'.htaccess ad ogniuna, ma capirete che diventa complessa la gestione; penso ci sia una soluzione, ma da "nuovo" non riesco a vederla...Grazie in anticipo
Ciao
-
Forse ci sono...
Cerchi per ore e basta mettere un post che subito leggi la soluzione da qualche parte...RewriteBase /
RewriteEngine On
RewriteRule ([^/]+)_([^/]+).html$ index.php?p=$1&page=$2
RewriteRule articoli/([^/]+).html$ articoli.php?p=$1E' perfetto... peccato che non funzioni.
Se sostituisco "...articoli/([^/]+)..." con "...articoli~([^/]+)..." però funziona!Sono al punto di prima...
-
Ciao potoloso,
@potoloso said:
Ma mi esce sempre e comunque il numero di pagina (la variabile $2), anche quando è la prima, cosa molto antipatica, sarebbe bello che i link fossero così:
sito.com/argomento (pagina 1)
sito.com/argomento_5 (pagina 5)Puoi fare una doppia regola:
RewriteRule ([^/]+).html$ index.php?p=$1&page=1 RewriteRule ([^/]+)_([^/]+).html$ index.php?p=$1&page=$2
@potoloso said:
Forse ci sono...
Cerchi per ore e basta mettere un post che subito leggi la soluzione da qualche parte...RewriteBase /
RewriteEngine On
RewriteRule ([^/]+)_([^/]+).html$ index.php?p=$1&page=$2
RewriteRule articoli/([^/]+).html$ articoli.php?p=$1E' perfetto... peccato che non funzioni.
Se sostituisco "...articoli/([^/]+)..." con "...articoli~([^/]+)..." però funziona!Puoi scrivere un link di esempio con cui richiami la pagina della seconda regola?
-
Certamente:
RewriteRule articoli/([^/]+).html$ articoli.php?p=$1
sito.com/articoli/nomearticolo.htmlCosì non funziona, ma se cambio il carattere "/" con per esempio "~" funziona:
RewriteRule articoli~([^/]+).html$ articoli.php?p=$1
sito.com/articoli~nomearticolo.htmlPerfetto per la regola che se "page=1" non compare il numero di pagina.
Grazie
-
Hai impostato il
RewriteBase /
?
-
Si, questo il codice completo:
RewriteBase /
RewriteEngine On
RewriteRule ([^/]+)_([^/]+).html$ index.php?p=$1&page=$2
RewriteRule articoli/([^/]+).html$ articoli.php?p=$1
-
prova cosi:
RewriteEngine On RewriteBase / RewriteRule ^([^/]+)_([^/]+).html$ /index.php?p=$1&page=$2 RewriteRule ^articoli/([^/]+).html$ /articoli.php?p=$1
-
Niente da fare, ora tutto 404 not found!
In realtà sto lavorando in una directory di test chiamata "perma", ma non dovrebbe esserci differenza, quindi il codice esatto in realtà è:RewriteEngine On RewriteBase /perma/ RewriteRule ^([^/]+)_([^/]+).html$ /index.php?p=$1&page=$2 RewriteRule ^articoli/([^/]+).html$ /articoli.php?p=$1
Se tolgo la "/" prima dell'index nel primo RewriteRule però funziona:
RewriteRule ^([^/]+)_([^/]+).html$ /index.php?p=$1&page=$2 //non va RewriteRule ^([^/]+)_([^/]+).html$ index.php?p=$1&page=$2 //va
Mentre per il secondo RewriteRule non fa differenza, sempre errore.
-
Avevo scritto che l'url era del tipo sito.com/articoli/nomearticolo.html
senza la cartella perma.Se i due url sono del tipo:
perma/aaa_bbb.html (file index.php dentro perma) e articoli/aaa.html (file articoli.php nella document root), prova cosi:RewriteEngine On RewriteBase / RewriteRule ^perma/([^/]+)_([^/]+).html$ /perma/index.php?p=$1&page=$2 RewriteRule ^articoli/([^/]+).html$ /articoli.php?p=$1