RewriteRule percorsi assoluti

angel

Utente Attivo
2 Nov 2009
109
0
0
Ciao a tutti, sto sviluppando uno script in php orientato agli oggetti dove uso il RewriteRule, ma sorgono alcuni problemi vi spiego.
Il mio sito si trova in una sottocartella tipo: www.sito.com/cartella
Ho alcuni file di tipo css o file js dove dentro il file js ho delle funzioni che fanno delle chiamate ajax però trovandomi con le pagine riscritte non trova i file per fare le chiamate, cosa mi consigliate?
Pensavo di sviluppare una funzione php che recupera il percorso del sito fino alla cartella di dove si trova il sito principale e aggiungerlo al percorso relativo.
Esistono altri modi secondo voi?

Ringrazio anticipatamente
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Troppo generico, come sono state riscritte le pagine? E dal file js che path utilizzi per richiamarle? Sono cambiati i nomi delle pagine o il loro percorso?
 

angel

Utente Attivo
2 Nov 2009
109
0
0
Ti faccio un esempio.

Ho un file htacess
PHP:
RewriteEngine On
RewriteBase /cartella/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^group/([0-9]+)$ index.php?type=group&num=$1 [L,QSA]

Nel file index.php
PHP:
<?php
$pagin = "";
if(isset($_GET["type"])){
switch($_GET["type"]){
case "group":
$pagin = "group";
break;				
default:
$pagin = "home";
break;
}
}else{
$pagin = "home";
}
include 'file/'.$pagin.'.php';
?>

Prendendo in esame un indirizzo tipo www.sito.com/cartella/group/1
Nel file group mi stampa tutte le informazioni relative al gruppo 1, ma tralasciado questo particolare.

Ti faccio un esempio di funzione js che uso:
PHP:
$.post("sender/test.php", { name: "John", time: "2pm" })
.done(function(data) {
...
});

Il file test.php si trova al seguente indirizzo www.sito.com/cartella/sender/test.php
Invece quando invia i dati trovandomi al seguente indirizzo www.sito.com/cartella/group/1 il percorso al quale invia le informazioni diventa
www.sito.com/cartella/group/sender/test.php

Non so se mi sono spiegato bene.
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Modifica il file Javascript in questo modo:
Codice:
$.post(window['ajax_url'], { name: "John", time: "2pm" })
.done(function(data) {
    // ...
});
E in cima a ogni file HTML dove usi la funzione scrivi:
HTML:
<script>
window['ajax_url'] = '../sender/test.php';
</script>
Usando ovviamente il percorso relativo al file AJAX.

In alternativa credo che sia anche possibile scrivere l'indirizzo completo (http://www.example.com/sender/test.php) e risparmiarsi così qualche fatica.
 

Discussioni simili