News:

Want to get involved in developing SMF, then why not lend a hand on our github!

Main Menu

url friendly

Started by laudia, July 14, 2013, 01:42:30 PM

Previous topic - Next topic

laudia

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?

emanuele

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.


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

laudia

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?

emanuele

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?


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

laudia

#4
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...

laudia

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

laudia

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!!!!!!!!!!!!......

emanuele

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]


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

laudia

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

emanuele

Puoi postare tutto l'htaccess?


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

laudia

# 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

emanuele

"page" non ha niente a che fare con help. ;)


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

laudia

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




Advertisement: