2014-02-12 84 views
15

當我嘗試這個laravel尾隨斜線重定向到本地主機

http://localhost/Testlaravel/public/users/login 

它的工作原理。但是,當我嘗試

http://localhost/Testlaravel/public/users/login/ 

它重定向我

http://localhost/users/login/ 

任何想法,爲什麼?

這是我的htaccess文件

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

    RewriteEngine On 

    # Redirect Trailing Slashes... 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 

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

回答

19

更改您的代碼如下:

Options -MultiViews 
RewriteEngine On 
RewriteBase /Testlaravel/public/ 

# Redirect Trailing Slashes... 
RewriteRule ^(.*)/$ $1 [L,R=301] 

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

我嘗試,但現在它重定向到http://本地主機/ C:/ XAMPP/htdocs/testlaravel/public/users/login – user3213240

+0

好吧我添加了RewriteBase/Testlaravel/public /,現在它工作thx :) – user3213240

+1

對我來說,行:** RewriteBase/Testlaravel/**工作,因爲我沒有使用公共文件夾並擺脫它。謝謝。 –

1

如果上述方法不工作,然後用 緩存清除瀏覽器歷史記錄,然後再試一次。

+1

可以是評論。 – Robert

0

我剛添加到我的.htaccess文件,它工作正常!

RewriteCond %{REQUEST_URI} !^ 
0

我的項目目錄是

C:\ WAMP \ WWW \ laravel_apps \ LI3 \

,改變了公衆的.htaccess文件夾內以下

<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 ^(.*)/$ /laravel_apps/li3/public/$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> 

我只是替換爲

RewriteRule ^(.*)/$ /$1 [L,R=301] 

RewriteRule ^(.*)/$ /laravel_apps/li3/public/$1 [L,R=301] 

現在,如果你把一個斜線在URL的末端會重定向到同一頁面