Miten tässä saa myös tuon rodut11.php:n selkokieliset osoitteet toimimaan? Nyt tämä ottaa huomioon vain ylimmän, olivatpa nämä kummin päin tahansa.
Options +FollowSymLinks RewriteEngine on RewriteRule ^([a-zA-Z0-9^/-]+)$ index11\.php?url=$1 RewriteRule ^([a-zA-Z0-9^/-]+)$ rodut11\.php?url=$1
Eikös sinulla ole tuossa sellainen sääntö, joka muuntaa tiettyä hahmoa vastaavat osoitteet. Ja sitten on toinen sääntö, jossa on täsmälleen sama hahmo, joten sen käsiteltäväksi ei jää mitään.
Pitääkö säännön siis tunnistaa osoite, joka on muotoa http://www.osoite.fi/parametri1/parametri2 Tästä siis tulisi esimerkiksi scriptille muuttujat url=parametri1 ja url=parametri2? Tämä on mahdotonta, koska ei voi olla kahta samannimistä $_GET muuttujaa.
Vikana on varmaankin sellainen outo luulo, että säännöt muuttaisivat jotenkin maagisesti vain selaimessa näkyvää osoitetta. Näin ei tietenkään ole, vaan selain uskoo asiaansa täysin ja säännöt muuttavat sitä, miten palvelin käsittelee osoitteita. Palvelin ei voi mistään tietää, kuuluuko jokin tietty sana index11.php:lle vai rodut11.php:lle, vaan se käsittelee säännöt järjestyksessä ja ottaa ensimmäisen, joka tilanteeseen sopii.
Voit kyllä ohjata kaikki osoitteet samaan tiedostoon ja erotella ne sitten PHP-koodin ja includen voimin.
Muuten, mitähän yrität tunnistaa tuolla merkkiryhmällä a-zA-Z0-9^/-
? Jotenkin herää epäilys, että sinulle sopisi paremmin joko a-zA-Z0-9
tai ^/-
(eli kaikki paitsi / ja -).
Eli enkö voi kirjoittaa mitään sääntöä htaccessiin, että jos index11.php
niin tämä sääntö: RewriteRule ^([a-zA-Z0-9^/-]+)$ index11\.php?url=$1
ja jos rodut11.php niin tämä sääntö voimassa: RewriteRule ^([a-zA-Z0-9^/-]+)$ rodut11\.php?url=$1
Mutta ymmärräthän siis sen, että tuon tunnistuksen täytyy jostakin saada selville mitä haluat tehdä. Tällä hetkellä molemmat lauseet osuvat täsmälleen samoihin merkkijonoihin.
www.osoite.fi/index11.php?url=etusivu muotoon www.osoite.fi/etusivu
ja
www.osoiste.fi/rodut11.php?url=kissa muotoon www.osoite.fi/kissa
saan molemmat säännöt toimimaan yksinään, selkokieliset osoiterivit siis. mutta se tarkistus htaccessilla ollaanko kummassa php-sivulla niin sitä en osaa tehdä, enkä tiedä voiko sitä htaccessiin kirjoittakaan.
Teet asian aivan väärin päin. Sinun tulee osoiteriville kirjoittaa osoite.fi/etusivu, jolloin scriptisi käsittelee asian (sopivalla säännöllä) oikein. Toiseen taasen tarvinnet toisen parametrin avuksi. Siis osoite.fi/rodut/kissa, joka muuttuu sisäisesti esimerkiksi tällaiseksi osoite.fi?rodut=kissa
Kun näköjään pidemmät vastaukset eivät kelpaa, tiivistetään: Ei voi tehdä kahta aivan samanlaista ohjausta.
Seuraavalla pätkällä www.sivu.fi/sivu/x vastaa www.sivu.fi/sivu.php?s=x osoitetta.
RewriteEngine on RewriteRule ^sivu/([^/\.]+)/?$ sivu.php?s=$1 [L]
Aihe on jo aika vanha, joten et voi enää vastata siihen.