从laravel路线中删除index.php

时间:2017-11-14 13:24:30

标签: php laravel .htaccess routing

我在apache centos服务器上有一个laravel 5.4。

文件夹结构如下: / var / www / html< - 公用文件夹 / var / www / project< - laravel项目文件夹 / var / www / html包含“public的laravel文件夹”内容,如css / js /和index.php等。

index.php包含对项目主文件夹的引用。 该项目有效,但只需使用ip:

myip/index.php/login

而不是

myip/login

正如我所愿 我尝试了很多方法来删除它,但没有运气,这是我在/ var / www / html中的.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]
RewriteRule ^(.*)$ index.php/$1 [L]


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

3 个答案:

答案 0 :(得分:1)

您需要继续进行laravel文档部署/ apache,然后您将看到需要将重写器规则放入apache配置中的重写器规则。一切都会起作用

答案 1 :(得分:0)

您应该更改服务器配置以从Laravel公用文件夹中提供文件,而不是更改.htaccess文件。

在编辑配置文件之前,为了安全起见,请复制默认配置文件以进行备份:cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.original

编辑文件/etc/httpd/conf/httpd.conf,如下所示:

更改此行:

DocumentRoot "/var/www/html" 

DocumentRoot "/var/www/project/public"

添加以下行以允许从Laravel公用文件夹中提供服务文件:

<Directory "/var/www/project/public">
    AllowOverride All
    Require all granted
</Directory>

运行sudo apachectl configtest以确保您没有犯任何错误。你应该得到Syntax OK

重新启动Apache服务器以应用新配置。 sudo systemctl restart httpd

最后,将.htaccess文件恢复为此link的laravel附带的默认版本。

创建虚拟主机而不是更改默认配置会更好。但是,如果您只在服务器上的网站上,这将是正常的。

答案 2 :(得分:0)

对于使用laravel 7.x的用户:确保在具有以下内容的项目的公共文件夹和根文件夹中都具有.htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

顺便说一句,不要忘记在/etc/httpd/conf/httpd.conf中(在CentOS上)将AllowOverride设置为All:

<Directory "/var/www/path/to/my/app/public">
    Options FollowSymLinks
    AllowOverride All
</Directory>

祝你好运。