如何从根文件夹内的子文件夹访问网站?

Jef*_*ose 6 .htaccess laravel

我即将部署一个 Laravel 项目。我上传了所有文件并且网站运行良好,但唯一的问题是当我尝试访问我的网站时,即例如,如果我尝试mywebsitename.com在 url 中写入,则显示公共目录,这是因为我已将 Laravel 的公共文件夹符号链接到public_html 文件夹。我不知道如何编辑.htaccess文件以使用 mywebsitename.com 而不是mywebsitename.com/public. 我的 htacess 文件代码是

<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>
Run Code Online (Sandbox Code Playgroud)

在我的文件目录结构显示此图像

请帮我

haz*_*des 5

我猜它是一个apache服务器。如果是;

  1. 确保您的域名mywebsitename.com指向public_html
  2. 在根目录 ( ) 中添加 .htaccess 文件public_html并将其粘贴到
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteRule ^(.*)$ public/$1 [L]
    </IfModule>
Run Code Online (Sandbox Code Playgroud)


Jef*_*ose 4

我找到了这个问题的解决方案。

1.复制 public_html 文件夹中的所有 laravel 文件,包括 .htaccess 文件和应该位于 public 文件夹中的 index.php 文件(将这两个文件保留在 public 文件夹中)。

2.然后使用 SSH 将您的存储链接到公共文件夹,为此打开 SSH 输入 ID 和密码并使用“cddomains/yourdomainname.com/public_html”更改目录,然后给出 php artisan 命令,即“php artisan storage:link” (注意:- 更改目录后,您可以根据需要提供所有 php artisan 命令,例如 migrate 和 config:cache 或clear:cache。

3.现在,在给出所有必要的命令后,如果您在 URL 上输入 yourdomainname.com/public,则可以访问功能齐全的网站,包括图像显示功能,但如果您仅输入您的域名,则所有 laravel 文件将显示在浏览器为了避免这种情况并直接跳转到公共文件夹内,请在公共文件夹外但在 public_html 文件夹内再创建一个 .htaccess 文件,
复制下面给定的代码,然后如果您只是在 URL 上输入您的域名,那么您的网站将直接显示

Options +SymLinksIfOwnerMatch
RewriteEngine On
RewriteRule ^ public [L]
Run Code Online (Sandbox Code Playgroud)