我需要在现有的Wordpress网站上添加一个新的Laravel应用程序 . 两者都将通过Apache webserver运行 . 这个想法是:
-
https://website.com/
- > Wordpress网站 -
https://website.com/laravelapp
- > Laravel Web应用程序
在文件系统中,根文件夹包含Wordpress文件,子文件夹 laravelapp
包含Laravel文件(因此,laravel public
文件夹是 laravelapp
的子文件夹) .
当我浏览这些时,这是当前返回的结果:
-
https://website.com/
- >返回Wordpress网站,工作永久链接 -
https://website.com/laravelapp
- >返回403错误 -
https://website.com/laravelapp/public
- >返回Laravel App
这告诉我mod_rewrite可用并正常工作 . 但我希望用户能够使用 https://website.com/laravelapp
访问该laravel应用程序(而不是公用文件夹) .
我一直试图设置 .htaccess
以使这种安排成为可能,但我被卡住了 . 我目前有:
.htaccess
在网站的根目录
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/laravelapp [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
.htaccess
在laravelapp
文件夹中
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /laravelapp/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
- `.htaccess` on `laravelapp/public` 文件夹包含分布式软件包中的标准laravel .htaccess文件 .
有没有办法让这成为可能?
1 回答
Laravel网站阅读有
RewriteBase /
因此,我认为您需要的最佳方式是为Laravel网站创建一个子域 .
但您仍然可以尝试配置.htaccess,请按照以下步骤操作:
创建一个新文件shared_hosting_root \ applications \ your_app_root \ app \ GoPublic.php
我们在这里使用相对路径,因此您不必知道绝对路径 . 但是遵循我前面提到的相同的推荐文件夹结构是非常关键的 .
您可能需要在根文件夹中运行以下命令以自动加载新类 . 否则,您将收到一条错误消息,指出无法找到该课程 .
更改
至
更改
至
现在,复制
applications\your_app_name\public into public_html\your_app_name
中的内容 .为了简化过程,我将创建一个bash文件来自动将文件复制到新位置 .
创建一个新文件
shared_hosting_root\applications\your_app_name\deploy.sh
使用rsync可确保如果您多次运行此deploy.sh,则只有较新的那些将被复制到新位置 .
当您准备好运行它时,在终端运行中:
警告:您必须在applications \ your_app_name中运行deploy.sh,否则它将失败 .
.htaccess
改变你的
.htaccess
按照这个希望这有帮助!