好,这是正在发生的事情。
我已经创建了一个小的laravel应用(实际上,它仍处于开发阶段)。
[当我将其上传到服务器(通过cPanel管理的共享主机)时,已将其部署到主网站内的子文件夹中。
服务器的public_html文件夹上有主要网站(WordPress),因此我在应用程序中创建了一个子文件夹。
现在,当您请求http://oursite.com时,您将到达Wordpress网站。当您请求http://oursite.com/laravelapp时,您会到达laravel应用的初始页面。
但是,当我尝试浏览应用程序中的任何页面时,路由会将我带回到根Web文件夹内的路由。
例如,如果我按下登录按钮,对http://oursite.com/laravelapp/login的请愿将重定向到http://oursite.com/login,显然页面加载失败
有趣的是,如果我直接访问公共页面,它似乎可以正常工作。
如果我直接请求http://oursite.com/laravelapp/public/index.php并按下相同的登录按钮,则会向http://oursite.com/laravelapp/public/index.php/login发出请求,它可以正常工作!!该请求中甚至正确检测到JS和CSS链接!
我怀疑这可能是很愚蠢的事情,因为我太累了,所以我现在看不到它,但是我将非常感谢对此事的任何见解。
我的laravelapp文件夹中的index.php是以下内容:
<?php
/**
* Laravel - A PHP Framework For Web Artisans
*
* @package Laravel
* @author Taylor Otwell <[email protected]>
*/
$uri = urldecode(
parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)
);
// This file allows us to emulate Apache's "mod_rewrite" functionality from the
// built-in PHP web server. This provides a convenient way to test a Laravel
// application without having installed a "real" web server software here.
if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) {
return false;
}
require_once __DIR__.'/public/index.php';
这是/ laravelapp / public文件夹中.htaccess文件的代码:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
也许我可以使用myLaravelApp.oursite.com之类的子域来解决此问题?
确定
我解决了将laravelApp / public上的.htaccess复制到laravelApp的问题。
似乎根文件夹需要某种类型的重定向,这就像一个符咒。