2017-03-07 14 views
0

Hallo Ich habe Probleme mit der Einstellung hübscher URLs mit öffentlichen Quellen in URL, aber es funktioniert nicht für mich.pretty urls laravel 5.4

Ich habe bereits versucht

Laravel 5.2 Pretty URLs, Laravel 5 - Remove public from URL

und ähnlichen Urls, aber nichts scheint zu funktionieren für mich.

Ich verwende wamp, windows 8

Ich habe sicher mod_rewrite machen eingeschaltet ist und ordnungsgemäß funktioniert.

Hier ist meine Htaccess auf Root.

RewriteEngine On 
RewriteRule ^(.*)$ public/$1 [L] 

meine .htaccess im Test innerhalb öffentlichen Ordner

<IfModule mod_rewrite.c> 
    <IfModule mod_negotiation.c> 
     Options -MultiViews 
    </IfModule> 

    RewriteEngine On 

    # Redirect Trailing Slashes If Not A Folder... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 

    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [L] 

    # Handle Authorization Header 
    RewriteCond %{HTTP:Authorization} . 
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 
</IfModule> 

Ich habe auch versucht, die htacess aus dem öffentlichen Ordner auf Stammordner einfügen und das eine vom öffentlichen Ordner entfernt, aber es vermöge Arbeit

tatsächlich Der Fehler, der auftritt, ist, dass meine routes-Datei alle Muster überspringt, wenn ich etwas wie Route :: get ('/ api/login', 'api @ login') habe, dann funktioniert es mit URLs, die public enthalten, aber wenn ich public entferne Von der URL werden alle Muster übersprungen. und es zeigt 404

ich sicher, dass alle Anforderungen public/index.php und geheimnisvolle Sache erreichen, dass, wenn ich

var_dump(Request::root()); 

in routes.php es für URL mit öffentlichen drucken sagt es http://localhost/folderName/subFolderName/public aber für die URLs ohne Öffentlichkeit sagt http://localhost/ und ich denke, das ist der Grund, warum meine Muster in Routen-Datei nicht funktionieren.

P.S. Ich habe den Titel pretty urls laravel 5.4 anstelle von laravel routes not working gesetzt, weil ich denke, dass es .htaccess ist, das ich richtig konfigurieren muss, um dieses Arbeiten zu erhalten.

Ich möchte nicht die Ordnerstruktur ändern, weil ich glaube, dass es einen Grund gibt, warum es so ist und es sollte einige Arbeit dafür geben.

In Bezug auf die Einstellung vhosts werde ich nicht in der Lage sein, dies auf dem Server zu tun (Für habe ich nicht die Rechte), so gibt es keine Verwendung von vhost auf lokale als eine Umgebung wie im Login-Lauf muss ich dies zu lösen.

Antwort

0

Versuchen Sie dies in Ihrem öffentlichen/.htaccess

RewriteRule^/public/index.php [L] 

Und die .htaccess im root

RewriteRule ^(.*)$ /public/$1 [L] 
+0

Stef, Vielen Dank für die Zeit, dies zu antworten nehmen, aber das gibt mir 404 auf beiden Urls dh URL mit und ohne Öffentlichkeit darin. – Arpita

+1

Angenommen es sagt, dass es index.php nicht finden kann, versuche den Pfad zu index.php in deiner htaccess Datei zu ändern, das hat es für mich behoben. Versuchen Sie zuerst, index.php zu entfernen, dann public. Verwechsle nicht beide htaccess-Dateien gleichzeitig, es wird verwirrend. – stef