mul on .htaccess faili ühe lihtsaga RewriteRule:

RewriteEngine on RewriteRule ^([A-Za-z0-9-]+)$ ?site=$1 

Ma tahan, et mul oleks selline URL http://www.example.com/imprint ja edastage see aadressile http://www.example.com/?site=imprint.

Kontrollisin seda reeglit a-ga RewriteRule tester, mis andis mulle tulemused, mida tahan saavutada. Minu kohalikus arendusserveris töötab see ka hästi.

Kuid kaugserveris annavad URL-id mulle lihtsalt vea 404. Muud lihtsamad ümberkirjutamise reeglid töötavad probleemideta, nii et kõik tuleb õigesti seadistada (ma arvan, et ..). Probleem on selles, et mul pole juurdepääsu ühele vealehele ega serveri konfiguratsioonile. Nii et ainus asi, mida ma teha saan, on arvata ...

Kas keegi oskab öelda, kas selles reeglis on midagi valesti? Või midagi muud, mida saan selle lahendamiseks teha või katsetada? Või on kellelgi mõte, mis võiks serveris valesti olla?

  • 1 Kas kaugserver lubab .htaccessiga alistada? Kas mod_rewrite on lubatud?
  • Peab olema. Ma ei saa seda konfigureerimisest kontrollida, kuid nagu ma ütlesin, kui ma kasutan mõnda muud lihtsamat reeglit, nt. suunake iga kutsung saidile www.google.com, kus see töötab.

Proovige kaldkriipsu enne?, Nagu

RewriteEngine on RewriteRule ^([A-Za-z0-9-]+)$ /?site=$1 

Kui see ei toimi, proovige lisada [R] pärast dollarit 1, nii et see kirjutab URL-i tegelikult ümber ja näete, kuhu see läheb, teie brauseri URL-i ribal

  • Tänan teid väga. Kaldkriips töötab nagu võlu. Ilma kaldkriipsu ja [R] lisamata suunatakse mind kogu failisüsteemi teele, näiteks www.example.com/www/hosting/XXX/XXX/websites/example/?site=imprint Kas saaksite seda käitumist mulle selgitada? Miks see töötab teistes serverites, kuid mitte selles? Kas selleks on mingi konfiguratsioon?
  • mis on 2 serverikeskkonda? Nagu näiteks WAMP vs Linux? Apache versioonid on samad? Võib-olla on ühel RewriteBase / in .htaccess ja teisel mitte? Või võib-olla sisaldab üks dokumendirootist aadressil httpd.conf (või vhosts) kaustatee lõpus lõpus olevat kaldkriipsu, nagu teisel pole? Ausalt öeldes sain teada, et ümbersuunamis-URL-ide alustamine peaks alati algama / kui mitte täieliku http: // teega, nii et ma ei saa tegelikult rääkida mitte-URL-ide oodatud käitumisest nagu teil algselt oli, sest ma ei kasuta neid kunagi ...
  • Hm ok, paljud asjad võivad olla sellise käitumise põhjuseks. Püüan end lihtsalt harjuda kirjutama ümbersuunamise URL-id alati lõpukriipsuga.
  • Mulle tundus, et see õpetus (eriti 2. osa) oli eriti kasulik, kui hakkasin esimest korda htaccessiga ringi mängima, loodetavasti leiab teie või keegi seda lugev ka sellest abi: corz.org/serv/tricks/htaccess.php

none: Charles Robertson | none