如何在url中删除index.php? (laravel 5.3,php 7)

时间:2016-11-29 08:09:24

标签: php .htaccess laravel laravel-5.3

我的网址是这样的:http://31.220.56.75/mysystem/public/index.php/login

我想删除index.php,如下所示:http://31.220.56.75/mysystem/public/login

我的.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 ^(.*)/$ /$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>

我尝试了一些教程di google。但我找不到解决方案

更新

我尝试像这样更新.htaccess:

<IfModule mod_rewrite.c>
   RewriteEngine On 
   RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

它不能正常工作

3 个答案:

答案 0 :(得分:0)

试试这个

<IfModule mod_rewrite.c>
 RewriteEngine On 
  RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

答案 1 :(得分:0)

公用文件夹中的

默认switch (value) { case 0 : // 1-A; break; case 1 : // 2-A; break; case 2 : // 1-B; break; case 3 : // 2-B; break; } 应该可以正常工作。检查:original .htaccess

答案 2 :(得分:0)

按照下面的.htaccess文件,希望这会有效。

如果您还面临$ _GET变量的问题,即如果你的URL index.php和没有index.php都工作但$ _GET变量找不到工作,那么下面的.htaccess代码将适合你。

DirectoryIndex index.php
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On
    RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
    RewriteRule ^(.*) - [E=BASE:%1]
    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteRule ^index\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule .? - [L]
    RewriteRule .? %{ENV:BASE}/index.php [L]

</IfModule>