tavis nörttimaailmassa

EksisONE - artikkeleita ja ohjeita nörttimaailmasta

WordPressin siirto ja error 404

Aina silloin tällöin joutuu siirtämään saittejaan. Yleensä kyseessä on wehotellista toiseen siirtyminen. WordPressin siirto on sinällään simppeli operaatio, joka voi mennä monellakin tavalla pieleen, mutta yleensä sen suurempia ongelmia ei tule. Siirron jälkeen tulee etusivulle, kirjautuu hallintaan ja kiittää itseään kun kaikki toimii. Paitsi kun siirtyy sisältöön ja kaikki artikkelit, sivut ja kaupan tuotteet antavatkin ilmoituksen error 404, ei löydy.

Jos hallinnassa artikkelit, sivut ja tuotteet löytyvät, niin mitään ei ole menetetty. WordPress ei vain osaa näyttää sisältöä. On muistettava, että mikään WordPressin sivuista ei sinällään ole verkkosivu, kuten asia usein mielletään. Ne eivät pääty .htm tai .html vaan polun/hekemiston päättävään kauttaviivaan. Toki sivut ovat sivuja siltä osin, että php-koodi on parsinut näytettävän sisällön kasaan tietokannassa olevista osasista ja esittää sen vierailijan ruudulle – sitä se dynaamisuus teettää ja tarkoittaa.

Useimmiten riittää, että piipahdat WordPressin asetuksissa. Silloin WordPress päivittää kotisivusi juuressa olevan tiedoston .htaccess. Yksinkertaisimmillaan se kertoo miten osoite rakennetaan ja esitetään. Jos haluat olla täysin varma, niin mene asetuksissa kohtaan Osoiterakenne, tarkista että se on haluttu ja tallenna. Suurin osa verkon neuvoista käskee nimenomaan tallentaa, mutta aidosti se ei ole tarpeen, mutta ei siitä haittaakaan ole.

Avaa selaimessa uudestaan sivusi ja mielellään niin, että se tosiaankin ladataan uudestaan, eikä vain haeta selaimen omasta välimuistista. Mobiileissa se onnistuu ensin sammuttamalla taustalta selain ja avaamalla se uudestaan. Windows-koneissa paina ctrl-F5. Osoiterakenteen virkistäminen ratkaisee hatusta heitettynä 90 prosenttia ongelmatapauksista.

Ne jäljelle jääneet 10 prosenttia tekevätkin hieman enemmän kiusaa.

Voit tarkistaa, että onko sinulla ylipäätään tiedostoa .htaccess. Jos ei ole, niin sinulla on hakemistoon kirjoittaminen kielletty, web-serverillä ei ole sinne kirjoitusoikeuksia tai ylipäätään virtual hostin conf-tiedostossa on .htaccess estetty AllowOverride none määräyksellä.

Omalla kohdalla webserverin kirjoitusoikeuksien häviäminen on tapahtunut silloin kun sivusto on siirretty FTP:llä käyttäen root-oikeuksia. Tuo on Ubuntussa helppo korjata. Varmistetaan samalla, että hakemistojen ja tiedostojen oikeudet ovat ainakin siellä päin.

Avaa SSH ja anna

sudo chown -R www-data:www-data public_html

cd public_html

sudo find . -type f -exec chmod 644 {} \;; find .  -type d -exec chmod 755 {} \;

Ja koska pääteyhteys on auki, niin varmistetaan vielä, että Apachen rewrite-moduuli on ylipäätään asennettu:

sudo a2enmod rewrite

Jos ei ole, niin asenna se. Mutta yleensä se voi puuttua vain jos olet tekemässä töitä esimerkiksi täysin neitseellisen VPN-asennuksen kanssa.

Avaa domainisi conf-tiedosto.

sudo nano /etc/apache2/sites-available/example.com.conf

Lisää sinne tämä ja tarkista samalla, että <Directory> polku on oikein:

<Directory /var/www/EXAMPLE.COM/public_html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>

Tallenna, sulje ja kokeile joko toimii.

Jos ei toimi, niin kuulut siihen yhden prosentin joukkoon, jolla on eksoottisempi ongelma.