Ég komst að því þegar að ég var að klára að stilla lénið undir bloggið (http://blog.hnefill.com) að ég lenti vandræðum með beinar slóðir (friendly url’s) fyrir allar síður og pósta.
Eftir fikt með stillingar og lestur á help docs á WordPress síðunni komst ég að því að nýjasta útgáfan af WordPress (útgáfa 2.7.1) kemur ekki með virku .htaccess skjali. Htaccess skjal er nokkurs konar stjórntæki fyrir lénið þitt og án þess geta vefumsjónakerfi eins og WordPress t.d. ekki sjálfkrafa búið til beinar slóðir á linka, blogg færslur og aðrar undirsíður.
Eftir mikið af fikti með stillingar rakst ég á endanum á þessa grein um hvernig má útbúa sitt eigið .htaccess skjal fyrir WordPress.
Fyrir þá sem að ekki nenna að lesa sig í gegnum greinina og leiðbeiningarnar á WordPress hjálpar síðunni kemur lauslega þýdd útgáfa hérna ásamt leiðbeiningum fyrir WordPress 2.7.1
Áður en þið byrjið skulið þið vera viss um að þið hafið aðgang að servernum þar sem að lénið er í gegnum FTP forrit eða SSH. Verið viss um að FTP forritið sýni hidden files á servernum og að þið hafið stjórnunarréttindi til þess að breyta stillingum á skjölum og aðgangsupplýsingum. Ef að þið hafið ekki FTP forrit til staðar þá mæli ég með að þið náið í FileZilla, sem að er ókeypis FTP forrit og það mest notaða í dag.
Lesið vel og vandlega áður en þið byrjið:
Munið að gera backup af öllum skjölum á servernum ykkar áður en þið notist við leiðbeiningarnar sem að hér koma. Undirritaður getur ekki á nokkurn hátt tekið ábyrgð á mögulegum vandamálum sem að upp kunna að koma og ef að þið eruð í vafa, þá notist ekki við þessa lausn nema að hafa einhvern til taks sem að getur leiðbeint ykkur.
Ykkur er velkomið að skilja eftir athugasemd í commenta kerfinu og ég mun reyna eftir fremsta megni að aðstoða þá sem að lenda í vandræðum.
Þá að sjálfum leiðbeiningunum. Markmiðið er að þú lærir að búa til .htaccess skjal sem að gerir eftirfarandi:
- Verndar sjálft .htaccess skjalið.
- Setur stafrænar undirskriftir (e. digital signatures) frá.
- Takmarkar upphal.
- Verndar wp-config.php skjalið í WordPress.
- Gefur aðgangsréttindi til allra sem að heimsækja síðuna með undantekningum.
- Bendir á sérútbúnar villu meldingar og skjöl.
- Setur skjala vafra (e. directory browsing) frá.
- Beinir gömlum slóðum yfir á nýjar.
- Setur heitar myndar slóðir (e. image hotlinking) frá.
- Gerir PHP þjöppun (e. PHP compression) mögulega.
- Skilgreinir “canonical” eða “standard” slóð á lénið þitt.
1. Byrjið á að opna Notepad eða eitthvað annað texta vinnslu forrit (Wordpad, Notepad++ etc). Vistið skjalið sem htaccess.txt (eftir að búið er að færa skjalið í rótina á WordPress uppsetningunni getið þið breytt nafninu í .htacess) annaðhvort á skjáborðinu eða í möppu þar sem að auðvelt er að nálgast skjalið aftur.

2. Bætið því næst viðeigandi skipunum í .htaccess skjalið. Nú þegar að þið hafið vistað htaccess.txt skjalið, getið þið byrjað að bæta inn þeim skipunum sem að við á, án þess að þurfa að reiða ykkur á flóknar PHP skipanir eða allt of bloated Javascript kóða.
Fyrir neðan getið séð dæmi um .htaccess skjal sem að liggur að baki vefsíðum eins og þessari (sem að notast eingöngu við WordPress og ekkert annað vefumsjónakerfi). Takið einfaldlega # merkið frá þeim skipunum sem að þið viljið virkja fyrir lénið ykkar og notið copy/paste til þess að færa yfir í htaccess.txt skjalið ykkar. Athugið að allar skipanirnar í þessu dæmi miðast við WordPress 2.7 eða hærra.
# protect the htaccess file
<files .htaccess>
order allow,deny
deny from all
</files>
# disable the server signature
ServerSignature Off
# limit file uploads to 10mb
LimitRequestBody 10240000
# protect wpconfig.php
<files wp-config.php>
order allow,deny
deny from all
</files>
#who has access who doesnt
order allow,deny
#deny from 000.000.000.000
allow from all
#custom error docs
ErrorDocument 404 /notfound.php
ErrorDocument 403 /forbidden.php
ErrorDocument 500 /error.php
# disable directory browsing
Options All -Indexes
#redirect old to new
Redirect 301 /old.php http://www.yourdomain.com/new.php
#block referring domains
RewriteEngine on
RewriteCond %{HTTP_REFERER} digg.com [NC]
RewriteRule .* - [F]
#disable hotlinking of images with forbidden or custom image option
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?yourdomain.com/.*$ [NC]
#RewriteRule .(gif|jpg)$ - [F]
#RewriteRule .(gif|jpg)$ http://www.yourdomain.com/stealingisbad.gif [R,L]
# php compression - use with caution
<ifmodule mod_php4.c>
php_value zlib.output_compression 16386
</ifmodule>
# set the canonical url
RewriteEngine On
RewriteCond %{HTTP_HOST} ^yourdomain.com$ [NC]
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=301,L]
# protect from spam comments
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post.php*
RewriteCond %{HTTP_REFERER} !.*yourdomain.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
# permalink settings for WordPress 2.7 or higher
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
3. Setjið htaccess.txt skjalið í rótina á WordPress uppsetningunni á servernum ykkar (notið til þess FTP eða SSH). Breytið nafninu úr htaccess.txt yfir .htaccess. Þegar að það hefur verið gert, breytið skjalstillingum á .htacess í 644 til þess að vernda það enn frekar gegn viðkvæmum árásarmöguleikum.
4. Prófið, prófið, prófið. Farið á lénið ykkar, er það ennþá sýnilegt ? Reynið að ganga úr skugga um að .htaccess skjalið sé ennþá varið. Prófið allar slóðir á bloggfærslur og síður sem að þið hafið búið til.
Að gefnu tilefni er rétt að taka fram að .htaccess skjalið að ofan er ekki fullkomið og veitir ekki fullkomna vörn gegn árásum á síðuna ykkar. Skjalið er prófað undir WordPress 2.7.1 og enn sem komið er hafa ekki komið fram nein vandamál. Allar slóðir virka, stillingarnar í WordPress eru ennþá þær sömu og allar viðbætur virka sem skyldi.
Athugið: ef að þið eruð að nota sérsniðnar lausnir fyrir .htaccess stillingar, þá skulið þið færa þær stillingar yfir nýja .htaccess skjalið.
Uppfært: Sjá nýlegri færslu um .htaccess stillingar fyrir WordPress.