Simple Machines Community Forum

SMF Support => Language Specific Support => Italiano (Italian) => Topic started by: laudia on July 14, 2013, 01:42:30 PM

Title: url friendly
Post by: laudia on July 14, 2013, 01:42:30 PM
ciao, ho installato la mod pretty urls per avere url migliori ma l' unica cosa e che me li modifica quasi tutti tranne alcuni, mi chiedevo se fosse possibile modificare ad esempio i link come

/forum/index?action=help%3bpage=profile

che con pretty urls diventa

/forum/help/?page=profile

ma vorrei che diventassero come

/forum/help/profile/

ho provato a inserire delle modifiche in htaccess ma non ho trovato nulla che risolvesse il problema. Esistono soluzioni?
Title: Re: url friendly
Post by: emanuele on July 15, 2013, 07:08:30 AM
Non saprei...credo ci sia la possibilità di configurare in qualche modo pretty URL, ma siccome non l'ho proprio mai usato, non saperi cosa dire.
Title: Re: url friendly
Post by: laudia on July 15, 2013, 08:37:12 AM
fra le opzioni non vedo nulla per risolvere la cosa

in htaccess aggiunge

RewriteRule ^(help|helpadmin|im|jsoption|jsmodify|lock|lockVoting|login)/?$ ./index.php?pretty;action=$1 [L,QSA]

ho provato tentando di modificarlo in vari modi ma nulla, o forse non l' ho modificato nel modo giusto.
Esistono almeno soluzioni alternative?
Title: Re: url friendly
Post by: emanuele on July 15, 2013, 08:42:47 AM
Il problema non è in prima battuta htacces.
htaccess agisce su un URL che digiti (o che segui) e la "riscrive" (internamente, lato server).
Il problema tuo è riscrivere *realmente* tutte le url che SMF genera come /forum/index?action=help;page=profile in /forum/help/profile/ all'interno dell'html.
Cioè dovresti intervenire su come pretty URL effettivamente altera il codice html presentato al browser.

...ma scusa, cosa te ne frega dell'help?
Title: Re: url friendly
Post by: laudia on July 15, 2013, 12:05:06 PM
l' help è solo un esempio ci sono altri link con "action" diverse che pretty-url modifica in questo modo, un altro esempio è
/forum/index?action=rule%3bsa=agreement

che trasforma in

forum/rules/?sa=agreement

io vorrei togliere questo cavolo di ? trasformando i link in una forma migliore, ad esempio in quest' altro caso
forum/rules/agreement/

con board e topic crea dei bei link invece con questi link modifica solo l' action.
pensavo bastasse solo una modifica in htaccess e risolto con help fare la stessa cosa con gli altri. Quindi soluzione...
Title: Re: url friendly
Post by: laudia on July 15, 2013, 03:54:17 PM
ok, ho provato a installare pretty-url-extra e selezionando l' opzione Tiny Portal articles (che non è una mod che ho installato) il link si modifica ma diventa

forum/page/profile/?action=help

non è quello che voglio ma era solo per vedere le modifiche che effettua
la parte della modifica che aggiunge a pretty url credo sia

function pretty_tp_articles_filter($urls)
{
global $boardurl, $scripturl;

$pattern = '`' . $scripturl . '(.*)page=([^;]+)`S';
$replacement = $boardurl . '/page/$2/$1';
foreach ($urls as $url_id => $url)
if (!isset($url['replacement']))
if (preg_match($pattern, $url['url']))
$urls[$url_id]['replacement'] = preg_replace($pattern, $replacement, $url['url']);
return $urls;
}


si potrebbe modificare in modo che modifica li link help come detto? i link "rules" invece non li modifica
Title: Re: url friendly
Post by: laudia on July 17, 2013, 03:49:17 PM
modificandolo in questo modo sono riuscita ad ottenere il link che volevo /forum/help/profile/

{
global $boardurl, $scripturl;

$pattern = '`' . $scripturl . '(.*)action=help;page=([^;]+)`S';
$replacement = $boardurl . '/help/$2/';
foreach ($urls as $url_id => $url)
if (!isset($url['replacement']))
if (preg_match($pattern, $url['url']))
$urls[$url_id]['replacement'] = preg_replace($pattern, $replacement, $url['url']);
return $urls;
}


ma purtroppo vanno a finire tutti verso la home del forum e non al link della pagina che dovrebbero.
Un aiuto perfavore!!!!!!!!!!!!......
Title: Re: url friendly
Post by: emanuele on July 18, 2013, 07:38:21 AM
A quel punto devi cambiare l'htaccess per re-indirizzare dove si deve...
Purtroppo non è la mia specialità...
Io proverei:
RewriteRule ^help/(.*)/?(.*)$ ./index.php?pretty;action=$1;sa=$2 [L,QSA]
messo prima di:
RewriteRule ^(help|helpadmin|im|jsoption|jsmodify|lock|lockVoting|login)/?$ ./index.php?pretty;action=$1 [L,QSA]
Title: Re: url friendly
Post by: laudia on July 18, 2013, 09:16:36 AM
lo avevo già provato ma così anche la pagina principale di help va alla home del forum, le ho provate in tutti i modi in htaccess, comunque inserisce

RewriteRule ^page/([^/]+)/?$ ./index.php?pretty;page=$1 [L,QSA]

in htaccess quando si seleziona l' opzione.

Mi chiedevo se si dovesse aggiungere qualcosa al codice per farlo andare al link giusto e non alla home del forum
Title: Re: url friendly
Post by: emanuele on July 18, 2013, 09:24:35 AM
Puoi postare tutto l'htaccess?
Title: Re: url friendly
Post by: laudia on July 18, 2013, 11:06:43 AM
# PRETTYURLS MOD BEGINS
# Pretty URLs mod
# http://code.google.com/p/prettyurls/
# .htaccess file generated automatically on: July 18, 2013, 10:02

RewriteEngine on
RewriteBase /forum

# Rules for: tp-articles
RewriteRule ^page/([^/]+)/?$ ./index.php?pretty;page=$1 [L,QSA]

# Rules for: profiles
RewriteRule ^profile/([^/]+)/?$ ./index.php?pretty;action=profile;user=$1 [L,QSA]

# Rules for: actions
RewriteRule ^(activate|admin|announce|ban|boardrecount|buddy|calendar|cleanperms)/?$ ./index.php?pretty;action=$1 [L,QSA]
RewriteRule ^(collapse|convertentities|convertutf8|coppa|deletemsg|detailedversion|display|dlattach)/?$ ./index.php?pretty;action=$1 [L,QSA]
RewriteRule ^(dumpdb|editpoll|editpoll2|mediapro|refferals|featuresettings|featuresettings2|findmember)/?$ ./index.php?pretty;action=$1 [L,QSA]
RewriteRule ^(help|helpadmin|im|jsoption|jsmodify|lock|lockVoting|login)/?$ ./index.php?pretty;action=$1 [L,QSA]
RewriteRule ^(login2|logout|maintain|manageattachments|manageboards|managecalendar|managesearch|markasread)/?$ ./index.php?pretty;action=$1 [L,QSA]
RewriteRule ^(membergroups|mergetopics|mlist|modifycat|modifykarma|modlog|movetopic|movetopic2)/?$ ./index.php?pretty;action=$1 [L,QSA]
RewriteRule ^(news|notify|notifyboard|optimizetables|packageget|packages|permissions|pgdownload)/?$ ./index.php?pretty;action=$1 [L,QSA]
RewriteRule ^(pm|post|post2|postsettings|printpage|profile|profile2|quotefast)/?$ ./index.php?pretty;action=$1 [L,QSA]
RewriteRule ^(quickmod|quickmod2|recent|regcenter|register|register2|reminder|removetopic2)/?$ ./index.php?pretty;action=$1 [L,QSA]
RewriteRule ^(removeoldtopics2|removepoll|repairboards|reporttm|reports|requestmembers|rules|search)/?$ ./index.php?pretty;action=$1 [L,QSA]
RewriteRule ^(search2|sendtopic|serversettings|serversettings2|smileys|smstats|spellcheck|splittopics)/?$ ./index.php?pretty;action=$1 [L,QSA]
RewriteRule ^(stats|sticky|theme|trackip|managears|about:mozilla|about:unknown|unread)/?$ ./index.php?pretty;action=$1 [L,QSA]
RewriteRule ^(unreadreplies|viewErrorLog|viewmembers|viewprofile|verificationcode|vote|viewquery|useremail)/?$ ./index.php?pretty;action=$1 [L,QSA]
RewriteRule ^(who|\.xml|buyme)/?$ ./index.php?pretty;action=$1 [L,QSA]

# Rules for: boards
RewriteRule ^([-_!~*'()$a-zA-Z0-9]+)/?$ ./index.php?pretty;board=$1.0 [L,QSA]
RewriteRule ^([-_!~*'()$a-zA-Z0-9]+)/([0-9]*)/?$ ./index.php?pretty;board=$1.$2 [L,QSA]

# Rules for: topics
RewriteRule ^([-_!~*'()$a-zA-Z0-9]+)/([-_!~*'()$a-zA-Z0-9]+)/?$ ./index.php?pretty;board=$1;topic=$2.0 [L,QSA]
RewriteRule ^([-_!~*'()$a-zA-Z0-9]+)/([-_!~*'()$a-zA-Z0-9]+)/([0-9]*|msg[0-9]*|new)/?$ ./index.php?pretty;board=$1;topic=$2.$3 [L,QSA]

# PRETTYURLS MOD ENDS


ho provato a cambiarlo anche in
RewriteRule ^page/([^/]+)/?$ ./index.php?pretty;action=help;page=$1 [L,QSA]
ma va sempre in home page
Title: Re: url friendly
Post by: emanuele on July 18, 2013, 11:40:01 AM
"page" non ha niente a che fare con help. ;)
Title: Re: url friendly
Post by: laudia on July 18, 2013, 01:10:50 PM
ok copiando varie cose dalle altre opzioni della mod finalmente ho inserito un altra opzione per help pages.
In htaccess ho inserito
RewriteRule ^help/([^/]+)/?$ ./index.php?pretty;action=help;page=$1 [L,QSA]
credevo di averlo già provato ma forse la cache mi ha tratta in inganno o devo averlo digitato male.
ora sembra funzioni selezionando e deselezionando la nuova opzione creata.
Facendo una cosa simile con gli altri link sembra funzionare anche per gli altri, devo provarli meglio.
grazie comunque per l' aiuto