我即将部署一个 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)
在我的文件目录结构显示此图像
请帮我
我猜它是一个apache服务器。如果是;
mywebsitename.com指向public_htmlpublic_html并将其粘贴到 <IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
我找到了这个问题的解决方案。
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)
| 归档时间: |
|
| 查看次数: |
220 次 |
| 最近记录: |