我部署基本Laravel项目到服务器。当我点击我的域名,它返回默认的欢迎视图。当我把简单的道路(见下文)添加到代码中,并尝试在浏览器中输入该路线时,它会返回500个内部错误。除"/"根路由外,所有路由都返回500错误。
文件夹结构:
/
#laravel
#subdoms
##api
Laravel文件位于Laravel目录中,但来自公共目录的文件位于api目录中。
.api目录中的htaccess文件:
<IfModule mod_rewrite.c>
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>
存储目录和其中的所有内容对任何人都是可写、可读和可执行的。
laravel/存储/日志中没有错误日志。
Laravel/路线/web.php:
<?php
Route::get('/', function () { // works fine.
return view('welcome');
});
Route::get('hello', function () { // 500 internal error
return 'Hello world';
});
服务器信息:
服务器-LinuxCentOS-Apache 2.2-服务器端包括-SSI-PHP版本7.0.17
解决方案1:
在所有路由前添加/;您的大小写为/Hello。或;
解决方案二:
我猜. htaccess被忽略了。http://httpd.apache.org/docs/2.2/en/mod/core.html#allowoverride
*apache2.conf file in /etc/apache2 : *
ServerName localhost
Mutex file:${APACHE_LOCK_DIR} default
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
选项索引如下Symlinks AllowOverride None需要授予所有
解决方案3:
Apache可能被配置为拒绝。htaccess覆盖。在这种情况下,您需要在VirtualHost配置中添加一个段,以允许这些操作。有关更多信息,请参阅Apache文档。也可能是未启用mod_rewrite。如果使用Ubuntu、Debian或其他基于Debian的操作系统,则在sudo a2enmod重写之后再重新加载sudo服务apache2就足够了。
这是我的,它能用
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteBase /laravel51/public/
# change above to your site i.e., RewriteBase /whatever/public/
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
对于那些刚刚通读了这篇文章但仍然没有解决方案的人来说,可能是因为您刚刚从gitlab或github帐户上的回购中克隆了一个项目,而忘记了生成项目。环境文件和应用程序密钥初始化。因此,转到您的项目目录,打开一个终端并运行cp。环境。实例环境
。这将创建。env
文件。然后运行php artisan key:generate
请注意,在我的特例中,laravel为每个路由返回500个错误。
故事是,我创建了一个自定义 API 路由 ,用于提取任何帖子类型的帖子。在本地,它可以完美地工作(MAMP),但在多个生产服务器(不同的环境)上,它会返回500错误。 适用于本地的API路由: http://wordpress.local/wp-json/wp-post-modal/v1/any-post-type?slug=modal-页 生产中的API路由示例(表明API路由确实存在): <
问题内容: 我正在通过Ajax将幻灯片(Jquery Ui Slider)中的每个滑块值传递到我的Controller。 Slider + Ajax看起来像这样: 因此,我确实有这样的想法: 我的路线如下所示: 在我的Controller方法中,我这样调用它: Log :: info($ sliderValue)告诉我,我确实在每张幻灯片上都获得了正确的滑块值。 当我尝试返回到编辑视图时,在控制台
你好,我是拉威尔的新手,也许这对你们来说太傻了。在laravel 8中,路由web。php我创建了一条如下的路线: 我想问的是,我们也可以从回调视图返回控制器吗?所以在路由 /editprofile中,第二个参数不是'App\Http\Controller\SiteController@edit_profile',而是一个回调函数,如路由'/home'。 但是它返回错误哈哈。假设我不想用__con
我有一个简单的Laravel项目。在路由中,我指定返回视图。现在我想另外得到直接在我的公共文件夹与图像,css等,通过添加更多的东西到链接让说将返回我我如何到达文件夹通过?
问题内容: 我在调用ajax时遇到了laravel的路由问题,但是我真的不明白是什么原因导致的,因为我应该调用ajax并成功返回。任何帮助将不胜感激。谢谢! 这是我的ajax代码 这是我的路线 这是我的控制器方法 这是我得到的错误 Laravel日志 filters.php 问题答案: 您需要在AJAX调用的标头中包含CSRF令牌。试试这个: 在您的HTML 块中: 对于您的AJAX电话: 最后,
作为一个 web 后台框架,路由无疑是极其重要的一部分。本博客接下来几篇文章都将会围绕路由这一主题来展开讨论,分别讲述: 路由的使用 路由属性注册 路由的正则编译与匹配 路由的中间件 路由的控制器与参数绑定 RESTful 路由 和之前一样,第一篇将会利用单元测试样例说明我们在平时可能用到的 route 的 api 函数用法,后面几篇文章将会剖析 laravel 的 route 源码。下面开始介绍