2012-12-25 17 views
5

Sto eseguendo un sito abilitato per AJAX che si occupa di hash HTML4 e HTML5 pushstate().httpd.conf e HTML5 pushstate()

Ho appena effettuato la migrazione a un'istanza di AWS EC2 (server Linux con Apache in esecuzione) ed entrambi i siti funzionano correttamente.

L'unico problema che ho riscontrato è quando aggiorno una pagina di hash HTML4 che mostra la pagina corretta.

Tuttavia quando aggiorna una pagina HTML5 come http://www.datingjapan.co/conversations ottengo il seguente messaggio di errore:

enter image description here

Sembra che apache sta cercando di andare nella cartella 'converstations' piuttosto che basta chiamare il sito ' index.php 'che utilizza jquery per caricare la pagina corretta.

Qualcuno può consigliare quale potrebbe essere il problema qui. Sto assumendo le sue impostazioni httpd.conf.

thx

+0

Penso che intendiate 'pushstate()' - ['popstate' è un evento, non una funzione] (https://developer.mozilla.org/en-US/docs/Mozilla_event_reference/popstate). Anche il "tag hash" non è appropriato in questo contesto - se ti riferisci alla porzione di un URL dopo aver incluso il carattere hash # #, questo è solo l'hash, non il tag hash. –

+0

grazie aggiornato la domanda .. – Adam

+0

Siete i benvenuti. Ho aggiornato la mia risposta: "Alias" non è la strada da percorrere. –

risposta

4

Se stai cercando di utilizzare un file index.php come un certo tipo di bootstrap si potrebbe desiderare di provare questo nel file .htaccess:

<IfModule mod_rewrite.c> 
   RewriteEngine on 
   RewriteCond %{HTTP_HOST} !^(www\.).+$ [NC] 
   RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L] 

   RewriteCond %{REQUEST_FILENAME} !-f 
   RewriteCond %{REQUEST_FILENAME} !-d 
   RewriteCond %{REQUEST_FILENAME} !-l 
   RewriteRule ^(.*)$ index.php?/$1 [L] 
</IfModule> 

Fondamentalmente questo reindirizzerà tutte le richieste da non www a www e poi se non è un file o una directory che verrà inoltrare la richiesta al file index.php.

+1

ha funzionato perfettamente - inserito nel sito Web .htaccess - molto apprezzato ... – Adam

+0

Nota che se inserisci queste direttive in httpd.conf anziché in .htaccess, devi inserirle in un tag Directory, ad es. Aaron

3

Non ho usato io stesso pushState(), ma se il browser invia una richiesta di /conversations a www.datingjapan.co, poi Apache sarà davvero cercare un file o una cartella chiamata “conversazioni” nella sua documento root, a meno che tu non gli dica di fare qualcosa di diverso.

Se si desidera che tutti gli URL su www.datingjapan.co per essere gestito da un unico file index.php, quindi è possibile utilizzare the AliasMatch directive nelle impostazioni di Apache File:

AliasMatch ^.*$ /index.php 

io credo questo si tradurrà in tutti gli URL gestiti da index.php. (Io non sono molto caldo sulla configurazione di Apache, però, quindi potrei sbagliarmi.)

Problemi correlati