2016-08-09 24 views
-1

Ich entwickelte mein eigenes MVC-Framework, aber ich habe ein Problem mit der PHP-Anfrage. Mein Rahmen shunk alle Anfrage von .htaccess, die diesen Inhalt haben:Kann nicht sehen, PHP-Datei-Anfrage in Netzwerk-Registerkarte

RewriteEngine On 

RewriteBase /MVC/ 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 

so in meinem Router aufgeteilt ich die URL wie folgt aus:

$url = isset($_GET['url']) ? $_GET['url'] : null; 
$url = rtrim($url, '/'); 
$url = filter_var($url, FILTER_SANITIZE_URL); 
$this->_url = explode('/', $url); 

if (file_exists($this->_url)) 
{ 
    require $this->_url; 
    new $this->_url[0](); 
    return true; //controller found 
} 

und die Steuerung auf diese Weise laden, ist das Problem, dass in der Netzwerk-Registerkarte von Chrome oder anderen Browser kann ich keine Anfrage der Datei sehen, aber es ist korrekt geladen.

Das ist ein Problem für mich, weil ich nicht überprüfen kann, ob ein Fehler in der Datei ist, oder wenn ich dump eine Variable möchte Ich kann den Inhalt nicht direkt in der Konsole des Browsers sehen.

Jede Chance, das zu beheben?

Beispiel:

Wenn ich im Browser Anfrage-URL setzen: http://localhost/MVC/user

, die die user.php Datei-Controller geladen werden kann, bekomme ich diese in dem Netzwerk Konsole:

enter image description here

Jetzt ist der Controller geladen, weil ich die Webseite sehen kann (der Controller-Benutzer lädt die Ansicht in der Index-Funktion)), aber ich kann es nicht in der Registerkarte Netzwerk sehen.

+0

Wenn es nur für Debug-Zwecke ist, können Sie wahrscheinlich '[QSA, L]' in '[R = 301, QSA, L]' ändern, um eine richtige Umleitung zu erhalten, anstatt sie neu zu schreiben. – apokryfos

+0

@apokryfos funktioniert leider nicht, danke trotzdem für den Hinweis. Ich aktualisiere meine Frage mit mehr Details und einem Bild Beispiel – Sferza

+0

@apokryfos das ist eine unglaubliche Frage, ich weiß nicht, warum nicht ernsthafte Antwort bekommen. – Sferza

Antwort

4

Sie haben die Registerkarte "JS" ausgewählt und auf "Alle" gesetzt.

Solution:

+0

Leider behebt dies das Problem nicht Ich sehe mehr Inhalt, aber keine PHP-Datei – Sferza

+0

Sie laden nur index.php-Datei über den Browser, weil user.php-Datei über PHP-Skript geladen wird. –

+0

Ich habe ein anderes Bild hochgeladen, damit Sie sehen können, dass keine PHP-Datei vorhanden ist. Wie auch immer, keine Änderung für diesen Code hinter anderen Frameworks? – Sferza

0

eine Apache-Rewrite nimmt eine URL und ändert es auf einer Reihe von Regeln basiert und dann dient die neu geschriebene Ressource, anstatt die Datei ursprünglich abgerufen. Dies geschieht jedoch auf der Serverseite und ist für den Client nicht sichtbar, daher ist diese Information für die Clientseite nicht zugänglich.

Der eine Weg für die Client-Seite zu sehen ist, wenn der Server umleitet, anstatt neu zu schreiben, und dies wird tatsächlich als eine sichtbare Änderung der Adressleiste angezeigt. Das Umleiten wird jedoch wahrscheinlich viele Dinge zerstören, die von der URL abhängen, auf die Inhalte bereitgestellt werden. Alles in allem können Sie Ihren Browser nicht verwenden, um die Überschreibungen Ihres Servers zu erkennen. Dies ist auch ein großes Sicherheitsrisiko, wenn Sie dies tun könnten.

Ich empfehle Ihnen, das Apache Rewrite Log stattdessen einzurichten, indem Sie den Anweisungen unter http://httpd.apache.org/docs/current/mod/mod_rewrite.html folgen. Diese Protokollierung wird von Apache selbst vorgenommen, befindet sich auf der Serverseite und ist die empfohlene Methode zum Debuggen von Rewrite-Regeln.