Php webhost上子文件夹中的Larvel
我有一个用Laravel编写的web应用程序,需要在web主机上的文件夹中运行。 必须通过Php webhost上子文件夹中的Larvel,php,apache,.htaccess,laravel,Php,Apache,.htaccess,Laravel,我有一个用Laravel编写的web应用程序,需要在web主机上的文件夹中运行。 必须通过hostname.com/webhit/访问该应用程序。这将指向应用程序的主页 我只有一条路线: Route::controller('/', 'HomeController'); HomeController的getIndex需要为主页提供服务这很有效。 但是,只要我想转到类似于hostname.com/webhit/login,我就会从Apache获得404 显然,.htaccess工作不正常。基本上
hostname.com/webhit/
访问该应用程序。这将指向应用程序的主页
我只有一条路线:
Route::controller('/', 'HomeController');
HomeController的getIndex需要为主页提供服务这很有效。
但是,只要我想转到类似于hostname.com/webhit/login
,我就会从Apache获得404
显然,.htaccess
工作不正常。基本上,我需要它将类似于hostname.com/webhit/login
的URL转换为hostname.com/webhit/index.php/login
我在www/webhit
中有一个.htaccess
文件(位于index.php
的位置),看起来像这样:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ webhit/index.php/$1 [L]
</IfModule>
选项-多视图
重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)$webhit/index.php/$1[L]
我不太熟悉.htaccess
文件语法,但我认为它有问题
编辑:
我做到了。我的.htaccess
是错误的(它实际上导致了一个重定向循环),但问题是它甚至没有被Apache解析(因此在一个请求中,由于重定向次数超过10次,所以是404而不是500)。为了让一切正常工作,我执行了以下步骤:
mod_rewrite
并重新启动Apache(关于如何执行此操作的大量文档)\etc\apache2\sites available\default
并将AllowOverride设置为all来启用重写(有关更多详细信息,请参阅上面的链接).htaccess
。我的原始版本中实际上有一个重定向循环。有关正确的版本,请参阅所选的响应在此之后,我让它开始工作。我希望它能帮助未来的程序员解决类似问题!检查默认服务器要求-laravel.htaccess文件适用于大多数情况。尝试以下方法:
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
选项-多视图
重新启动发动机
重写cond%{REQUEST_FILENAME}!-d
重写cond%{REQUEST_FILENAME}!-f
重写规则^index.php[L]
我建议您使用足智多谋的控制器-从路由到控制器的映射方法更加清晰,您将获得完整的
只需一个命令即可获得资源(路由、模型、视图、控制器)感谢您的响应!我也尝试了默认的laravel.htaccess,但没有效果。我将尽快尝试此版本,并返回更多信息。此外,我正在使用资源丰富的控制器!我的主页正在
getIndex()中处理
。我注意到mod\u rewrite
被禁用。我启用了它(现在在执行print\r(apache\u get\u modules());die();
时显示),重新启动了Apache,更新了.htaccess
文件,但我仍然收到404个错误。好的,我将用我采取的其他步骤编辑我的问题。我必须启用模块本身,并实际告诉Apache进行重写。