Table of Contents
This page in: English - Deutsch - Español - Français - Italiano - Lietuvių - Nederlands - Norsk - Polski - Русский - Svenska - Tiếng Việt - عربي - 日本語 简体中文
Contents |
Tips og Tricks
Standardinstallasjonen av CMS Made Simple kommer med et standard sett av maler og funksjonalitet.
Denne seksjonen samler noen vanlige tips for å hjelpe deg til å endre installasjonen slik at den passer bedre til din webside.
Se også Ofte Spurte Spørsmål for flere nyttige tips og tricks - artikkelen Pretty URLs flyttet dit.
Beskytte e-postlinker mot spam (mailto)
E-postadresser på dine websider kan høstes av spammere. Her er et hendig Smarty tricks for å kode e-postadressene så de vises og fungerer normalt i en nettleser, men ikke er så lett synlig for systemer som automatisk skanner for dem. Denne teknikken kalles noen ganger for "email obfuscation."
I stedet for å legge til e-postlinken direkte i HTML-koden som <a href="mailto:me@example.com">, så bruker du Smarty {mailto} for å kode e-postadressen:
{mailto address="me@example.com" encode="javascript"}
[Tagger|Taggen] {mailto} vil automatisk kode e-postadressen til JavaScript, hex eller annet format og skjule den for spam-roboter. Koden ovenfor er kodet slik:
<script> eval(unescape('%64%6f% ... snipped ...%61%3e%27%29%3b')) </script>
{mailto} støtter også ulike parametre som gjør at du kan spesifisere metoden for koding av adressen, tekst som vises i e-postlinken, e-postens emne, flere mottakere og enda mer. Du kan lese mer detaljert om dette i manualen for {mailto} på Smartys hjemmeside.
LDAP Integrasjon
Selv om CMSms har egen administrasjon av brukere og grupper og autentisering-/autoriseringsfunksjoner, så er det kanskje noen brukere som vil bruke en eksisterende database i en LDAP-mappe. CMSms (v1.0.4) har ikke foreløpig et bulletin valg som kan integreres med en LDAP-mappe. Men noen brukere har publisert tips for å få det til, og de har fått det til i produksjonssider.
Du kan lese den første LDAP-tråden i forumet for å få litt mer bakgrunnsinformasjon om dette. Hvis du ønsker å integrere CMSmn med din LDAP-mappe, anbefales å lese denne tråden med tips.
Beskytte mot å vise mappeinnhold
Hvis du bruker Apache web server (og jeg mistenker at det er det samme med andre), så er det slik at hvis noen navigerer til www.yourwebsite.com/somefolder/, så vil han/hun se innholdet i denne mappen, som kan være bra... dersom du hadde FTP server og ønsket at det var det som skulle skje. Den enkle løsningen for å unngå dette, er å plassere en enkel index.html fil med en eller annen advarsel i disse mappene. Filene vil fremdeles være tilgjengelig fra websidene, men den som prøvde å finne tak i filstrukturen din får en advarsel.
NB: Dette er ikke den sikreste måten å håndtere dette på, men det er den raskeste.
En annen mulighet er via .htaccess eller httpd.conf filene.
Du kan beskytte en mappe med .htaccess på følgende måte. Du må lage eller endre en .htaccess fil slik at den inneholder:
#option to remove directory listings in this folder Options -Indexes
Dette vil hindre opplisting av innholdet i mappen hvor .htaccess ligger men det vil fremdeles være mulig å vise index.php og index.html hvis den faktisk finnes i denne mappen. Du kan gjøre dette globalt for alle mappene (hele webområdet ditt) ved å skrive inn den samme informasjonen i .htaccess filen i root-mappen. Den samme metoden kan også brukes i httpd.conf-filer.
Tilpassete feilmeldinger for Error 401, 403 og 404
Det er ganske vanlig at en webserver har aliaser og virtuelle verter. Derfor kan det i noen tilfeller være bedre at webserveren håndterer feilmeldinger heller enn cms-et. På den måten blir det like feilmeldinger uansett hvilket alias eller virtuell vert som har forårsaket feilen.
Derfor kan vi bruke en kombinasjon av Apaches ErrorDocument handler og cmsms sin Side-innhold slik at vi får en konsistent visning av feilmeldinger. Det er bare feilmeldingene med kodene 401, 403 og 404 som er satt opp, men denne prosessen kan lett brukes også for andre feilmeldingskoder. I et miljø med delt vert, _burde_ også apache konfigurasjonen kunne legges til i en .htaccess-fil i stedet for direkte i apache.conf.
Denne prosessen er testet på en installasjon av CentOS 5 x86_64, og da dette ble skrevet, var CentOS 5 i versjon 5.1. Apache var ikke konfigurert med virtuelle verter, men den hadde flere aliaser.
1.) Første steg er å sette opp PrettyURLs ved å bruke mod_rewrite slik det er beskrevet i CMSMS OSS. Du må skrive følgende i cmsms sin config.php-fil:
$config['assume_mod_rewrite'] = true; $config['page_extension'] = '.html'; $config['internal_pretty_urls'] = false; $config['use_hierarchy'] = true; //optional
2.) Så må du redigere apache.conf og skrive følgende:
<Directory "/path/to/your/cmsms"> Options -Indexes +FollowSymLinks Order allow,deny Allow from All RewriteEngine on # 301 Redirect all requests that don't contain a dot or trailing slash to # include a trailing slash RewriteCond %{REQUEST_URI} !/$ RewriteCond %{REQUEST_URI} !\. RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L] # Rewrites urls in the form of /parent/child/ # but only rewrites if the requested URL is not a file or directory RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+)$ index.php?page=$1 [QSA] </Directory>
NB: CMSms-mappen ble definert som DocumentRoot, slik at andre relaterte direktiver i apache.conf ble oppdatert i henhold til dette.
I apache.conf må du også definere sidene for feilmeldingene:
ErrorDocument 401 /error-401.html ErrorDocument 403 /error-403.html ErrorDocument 404 /error-404.html
3.) Lag sidene for feilmeldinger i CMSMS Admin panelet:
F.eks.
Error 401 Feilside
Main tab content type: Content title: Error 401 menu text: Error 401 parent: None template: Din standard-mal content: Det du vil at feilmeldingen skal vise
Options tab Active: avkrysset Show in Menu: ikke avkrysset Cachable: ikke avkrysset Page Alias: error-401
De andre feilmeldingssidene lager du på samme måte.
4.) Start Apache på nytt og test.
Hvis PrettyURLs er aktivert og du bruker mod_rewrite, så skal du nå kunne finne http://www.yourdomain.com/error-401.html. Apache kan nå sende alle 401-feil til denne siden, uansett alias eller virtuell vert.
Vær oppmerksom på at dette ikke var testet i et delt vertsmiljø.
En privat side med nedlastinger for innloggete brukere
Du trenger tre moduler dersom du vil ha en privat side som inneholder nedlastbare dokumenter for innloggete brukere. De tre modulene er Front End Users, Custom Content og Uploads. Du bør også lage en mappe, f.eks. /uploads/privatedocs til å lagre dokumentene og plassere en .htaccess fil i mappen som sier ganske enkelt "Deny from all".
På siden (eller malen for siden) som skal vise listen over dokumentene, må du skrive noe sånt som dette:
{ if $ccuser->loggedin() } {cms_module module="Uploads" category="mycategory" mode="summary" sortorder="date_desc" template="mytemplate"} {else} <p>Dette er bare tilgjengelig for innloggete brukere.</p> {cms_module module=FrontEndUsers form="login" nocaptcha="1" returnto="$page_alias"} {/if}
"if $ccuser->loggedin()" sjekker om en bruker er logget inn. Det er også andre valg som for eksempel lar deg sjekke om brukeren er medlem av en spesiell gruppe. Les dokumentasjonen for modulen for mer informasjon.
"{cms_module module="Uploads" osv. viser en liste over dokumenter som er tilgjengelige for nedlasting. Les dokumentasjonen for mer informasjon om parametre for denne funksjonen.
Nå er det bare innloggete brukere som kan se listen over filer, og .htaccess hindrer at personer forsøker å gå direkte til dokumentmappen via nettleseren.
Hvis du ønsker at autoriserte brukere også skal kunne laste opp dokumenter, kan du legge til en side som inneholder noe slikt:
{ if $ccuser->loggedin() } {cms_module module="Uploads" category="mycategory" mode="upload" noauthor="1" nocaptcha="1"} {else} <p>Dette er bare tilgjengelig for innloggete brukere.</p> {cms_module module=FrontEndUsers form="login" nocaptcha="1" returnto="$page_alias"} {/if}