Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何改进Laravel中的url?_Linux_Apache_Laravel_Server - Fatal编程技术网

Linux 如何改进Laravel中的url?

Linux 如何改进Laravel中的url?,linux,apache,laravel,server,Linux,Apache,Laravel,Server,我在Homestead上创建了我的应用程序。那里一切都很好。但当我将应用程序移动到外部服务器时,我总是必须在根路径之后包含index.php 例如: www.domain.com/index.php/contact 如何去掉index.php使我的URL更漂亮? 申请表格位于: /var/www/ 公用目录重命名为html: /var/www/html 另外,我正在使用apache2。您应该知道它在Laravel目录中。重新启动Apache,您将能够使用正常的URL,如www.domain

我在Homestead上创建了我的应用程序。那里一切都很好。但当我将应用程序移动到外部服务器时,我总是必须在根路径之后包含index.php

例如:

www.domain.com/index.php/contact
如何去掉index.php使我的URL更漂亮?

申请表格位于:

/var/www/
公用目录重命名为html:

/var/www/html
另外,我正在使用apache2。

您应该知道它在Laravel目录中。重新启动Apache,您将能够使用正常的URL,如
www.domain.com/contact

在创建虚拟主机时,应使用以下方法:

DocumentRoot "/var/www/public"
<Directory "/var/www/public">
DocumentRoot”/var/www/public

假设您已经将web服务器指向公共目录,您的问题应该在Apache配置中

Laravel在
public/.htaccess
中提供了
.htaccess
,但您需要在Apache中启用mod rewrite才能正常工作

sudo a2enmod rewrite
要使
.htaccess
工作,需要在Apache conf中设置
allowveride
指令

<Directory "/var/www/public">
AllowOverride All
</Directory>

允许超越所有

您重命名了目录,但Laravel不知道这一点。试着像我说的那样配置Apache,这是为Laravel项目配置web服务器的正确方法。我应该删除public/.htacces中的所有内容,并将这3行代码放进去还是添加进去?不。这应该放在main conf中,以便可以使用.htaccess覆盖此特定配置的主配置library@user4938195:是否像第一个命令一样启用了“重写”?是的。在/etc/apache2/sites enabled/000-deafolt.conf中,我指向公共目录。DocumentRoot/var/www/public您可以将此指令包含在该文件中吗?允许超越所有