Laravel作为现有网站的插件

时间:2015-10-31 13:37:11

标签: php apache .htaccess laravel mod-rewrite

我的网站已经建成了:http://example.com 我的目录结构是:

root/
  |
  -- htdocs/    ---> This is the document root. All the front end scripts are located here.
  |  |
  |  - css/
  |  - ...
  |
  -- cms/   --> This is the backend. This site is like a cms Driven Site.

现在我想在后端安装laravel。我想用laravel构建我的CMS。但我不希望网址如下:http://example.com/cms/public/

我希望它只是:http://example.com/cms/

我知道,我可以将所有文件夹放在文档根目录之外,并重命名public文件夹并更改一些设置以实现我想要的效果。但我不希望我的文档根目录中包含所有这些文件。文件夹和文件与我的前端相关文件和&文件夹。我希望整个事情能够在其他网站后端分离并易于使用。

为了达到这个目的,我使用了2个.htaccess文件。

在文档根目录中,我有:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^cms/$      cms/public/     [L]
    RewriteRule    ^cms/(.*)$  cms/public/$1   [L]
</IfModule>

在cms文件夹中我有:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$      public/     [L]
    RewriteRule    ^(.*)$  public/$1   [L]
</IfModule>

我不擅长写.htaccess或做mod_rewrite

任何人都可以帮助我

1 个答案:

答案 0 :(得分:0)

你可以用这种方式实现你想要的目标:

public到后端目标文件夹的laravel文件夹创建目录联结:

mklink /J C:\www\htdocs\app-frontend\cms C:\www\htdocs\app-backend\public

第一个路径用于别名,第二个路径用于 real 文件夹。此处app-backend将是安装laravel的文件夹。

这就是我在共享托管中处理Laravel的方式。

如果您选择采用mod_rewrite方法,则会显示.env文件。