如何指向 mydomain 上的书架 (Laravel) 应用程序的 public 文件夹。com/bookstack

How to point bookstack (Laravel) application's public folder on a mydomain.com/bookstack

您好,我正在尝试托管 bookstack 应用程序,它基本上是共享主机上的幼虫应用程序,从本地上传数据库转储并将所有文件上传到 public_html/bookstack 文件夹后。

现在我可以访问位于 https://example.com/bookstack/public 的网络应用程序,但我只想在 example.com/bookstack 处托管该网站,而不想要 "public" 中的 "public" 38=]。

我有两个问题,

1) 如何使用.htaccess 文件实现?

2) 在 .env 文件中有一个选项

# Application URL
# Remove the hash below and set a URL if using BookStack behind
# a proxy, if using a third-party authentication option.
# This must be the root URL that you want to host BookStack on.
# All URL's in BookStack will be generated using this value.

#APP_URL=https://example.com

所以如果我在这里把 APP_URL 作为 https://example.com/bookstack ,并删除评论,它首先给出“403 Forbidden -您无权访问此资源。”错误,如果我访问 https://example.com/bookstack/public 它工作正常。

更新:所以我在 bookstack documentation 中找到了这个子目录设置页面,但它只描述了如果我可以访问 apache 时如何设置,这在共享主机的情况下是不可能的

  1. /public 中的 .htaccess 文件移动到根目录。
  2. 将根目录中的 server.php 文件重命名为 index.php

你可以这样做

<VirtualHost *:80>

...

# BookStack Configuration
Alias "/bookstack" "/var/www/bookstack/public"

<Directory "/var/www/bookstack/public">
  Options FollowSymlinks
  AllowOverride None
  Require all granted

  RewriteEngine On
  # Redirect Trailing Slashes If Not A Folder...
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)/$ / [L,R=301]

  # Handle Front Controller...
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^ index.php [L]
</Directory>


<Directory "/var/www/bookstack">
  AllowOverride None
  Require all denied
</Directory>
# End BookStack Configuration

...

更多详细信息,请参阅此参考资料。

Setup Sub Path in BookStack

谢谢