- Home
- Categorie
- Digital Marketing
- Posizionamento Nei Motori di Ricerca
- Neofita di URL rewriting
-
Neofita di URL rewriting
Ciao a tutti,
inanzitutto mi presento, mi chiamo Nicola, e sono unweb programmer siciliano, co-autore del CMS opens ource ASP, Zenukers.Da qualche giorno mi sto imbattendo nell'url rewriting per un'altro progetto, ma essendo neofita dell'argomento sto incontrando alcune difficoltà; per questo ho deciso di chiedere consiglio/aiuto a questa comunità, che lato SEO soprattutto penso sia ineguagliabile.
Prima di porvi le mie domande, vi espongo la struttura del sito al quale sto lavorando.
-
root del sito, che comprende i file robots.asp e stemap.asp
-
cartella di versione (/it per esempio)
-
cartella /notizie
-
sitemap.asp
-
feed.asp
-
-
altra cartella di versione (/en per esempio)
-
cartella /news
-
sitemap.asp
-
feed.asp
-
-
La mia intenzione è quella di rendere dinamica la creazione del robots.txt e della sitemap.xml ke è una sitemap index sulla root; di rendere dinamica la creazione della sitemap.xml e del file feed.xml sulle cartelle di versione e di rendere seo frendly le pagine delle notizie.
Per fare questo ho usato 3 file .htaccess ( il che già nn mi sembra una cosa corretta, per cui chiedi lumi al riguardo).
Nel primo file .htaccess sulla root ho scritto il seguente codice, che cmq funziona :
[PHP]
RewriteEngine on
RewriteRule robots.txt robots.asp
RewriteRule sitemap.xml sitemap.asp
[/PHP]Nel secondo file .htaccess sulla cartella di versione (quindi un file .htaccess per /it uno per /en/ etc...) ho scritto il seguente codice, che cmq funziona :
[PHP]
RewriteEngine on
RewriteBase /
RewriteRule sitemap.xml sitemap.asp
RewriteRule feed.xml feed.asp
[/PHP]Nel terzo file .htaccess sulla cartella di notizie di versione (quindi un file .htaccess per /it/notizie/ uno per /en/news/ etc...) ho scritto il seguente codice, che NON funziona :
[PHP]
RewriteEngine on
RewriteRule ([0-9]+)/$ default.asp?id=$2&title=$1
[/PHP]il mio intento è quello di rendere seo friendly url da questo tipo
/it/notizie/?id=XX&title=YY a /it/notizie/YY/
/en/news/?id=XX&title=YY a /en/news/YY/
/es/noticias/?id=XX&title=YY a /es/noticias/YY/
etc.... ma come suddetto nn mi funziona la regola, che è quindi sbagliata.
Avete idee o consigli in merito?
Vi ringrazio
-
-
Prova con questa:
RewriteRule [^/]/([a-z]+)/$ default.asp?id$2&title=$1
Tieni presente che non ho mai utilizzato queste regole quindi fammi sapere.
Marco
-
No, nn va bene
-
Prova con questo:
^/it/notizie/([^/]+)$ /it/notizie/?id=$2&title=$1
Marco
-
Niente, non funziona neanche questa regola. Ma in quale dei tre .htaccess file devo inserirla? in quello dentro la cartella notizie/ ? Anche se credo non vada bene cmq perchè ho provato ad inserire questa regola dentro il file della root e dentro il file della caretlla notizie
-
Potresti postarmi cosa ritorna la regola che ti ho indicato?
Marco
-
Cliccando sul link si ha The system cannot find the file specified.
Ho capito quasi tutto.
Se uso questa :
RewriteRule (.)/(.) default.asp?id=$2&title=$1
mi funziona però io nn voglio riscrivere il parametro id e quindi se uso questa
RewriteRule (.*)/ default.asp?id=$2&title=$1
non mi funziona
-
Con quella sintassi dovrebbe sostituirti i valori parametrici $1 e $2.
Prova con questa, probabilmente con l'asterisco funziona. In pratica l'obiettivo è quello di andare a sostituire il parametro $1 al posto del pattern **(.*).
**Il parametro $2 non dovrebbe quindi essere considerato.^/it/notizie/(.*)/$ /it/notizie/?id=$2&title=$1
Marco
-
Ma da quello che ho capito dalle regole non mi funziona perchè è come se passassi un url del tipo ?id=&title=XX .
Quindi il mio script non riceve l'id che mi serve per sputargli fuori la visualizzazione corretta e mi visualizza la pagina coin i link alle varie pagine.Quindi mi sa che nn c'è altra solzuione perchè l'associazione fra stringa ed id da me non si può usare perchè non è univoca.
Cmq Marco grazie dell' aiuto.
-
Non hai detto che vuoi ottenere una rewrite di questo tipo?
il mio intento è quello di rendere seo friendly url da questo tipo
/it/notizie/?id=XX&title=YY a /it/notizie/YY/
/en/news/?id=XX&title=YY a /en/news/YY/
/es/noticias/?id=XX&title=YY a /es/noticias/YY/I tuoi URL quindi contengono sia **id **che title come parametri della query-string, e in questo caso il pattern (.*) ****dovrebbe essere sostituito con il valore della variabile **title **ossia YY (nel caso in esempio).
Marco
-
si ma sei il mio link è notizie/titolomianotizia/ come lo trasformo in notizie/default.asp?id=xx&title=YY
perchè YY = titolonotizia, e XX = a cosa?
sono costretto ad inserire nell'uRL seo frendly per forza l'id in qualke modo, no?
-
Ma non volevi fare il contrario?
Marco
-
Forse mi sono spiegato male io, io nelle mie pagine ho l'url seo friendly che il server mi deve interpretare in default.asp?id=XX&title=YY per visualizzarmi la pagina corretta. Ma comunque ho contrllato in giro l'unico modo per eliminare l'id dal mio URL è quello di fare un'associazione univoca fra ID e titolo che purtroppo nn posso fare
-
Perchè vorresti eliminare l'id nella query string?
Un'articolo è individuato univocamente da un id e da un titolo, a meno che il titolo non sia già univoco.Marco
-
Infatti è quello che dico io, io nn ho i titoli univoci quindi devo per forza usare l'id.
Volevo togliere l'id per evitare di usare nell'URl un valore numerico che ci sta sempre un pò male, ma dato che non si può fare, ho risolto mettendolo.
Grazie di tutto l'aiuto comunque. Credo che il topic si possa chiudere qui
-
Ok
Buon lavoro
Marco