【问题标题】:laravel trailing Slashes redirect to localhostlaravel 尾部斜杠重定向到本地主机
【发布时间】:2014-03-11 05:26:36
【问题描述】:

当我尝试这个时

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>

【问题讨论】:

    标签: php regex .htaccess mod-rewrite trailing-slash


    【解决方案1】:

    将您的代码更改为:

    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]
    

    【讨论】:

    • 我试了一下,现在重定向到localhost/C:/xampp/htdocs/Testlaravel/public/users/login
    • 好的,我添加了 RewriteBase /Testlaravel/public/ 现在它可以工作了 :)
    • 对我来说,这行: RewriteBase /Testlaravel/ 有效,因为我没有使用公用文件夹并摆脱了它。谢谢。
    • 这对我不起作用。 http://localhost/newproject/public/login/ 工作正常。但是http://localhost/newproject/public/login/ 会重定向到http://localhost/login
    • @kupendra:每个人的问题都不一样,这不是你的问题的答案。发布一个新问题,我们会对此进行调查。
    【解决方案2】:

    如果上述方法不起作用,请清除您的浏览器历史记录 缓存并重试。

    【讨论】:

      【解决方案3】:

      我刚刚将它添加到我的 .htaccess 文件中,它运行良好!

      RewriteCond %{REQUEST_URI} !^
      

      【讨论】:

        【解决方案4】:

        我的项目目录是

        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]
        

        现在,如果您在网址末尾添加一个斜杠,它将重定向到同一页面

        【讨论】:

          猜你喜欢
          • 2018-07-17
          • 2016-10-29
          • 1970-01-01
          • 2018-10-19
          • 1970-01-01
          • 1970-01-01
          • 2018-08-01
          • 1970-01-01
          • 2019-03-28
          相关资源
          最近更新 更多