我有一个网站想要暂时托管在我的VPS上,但遇到了问题。

在“ sites-available”中创建“ .conf”文件并激活该站点后,许多文件未正确链接。

这是我的.conf配置:

# domain: mynewsdesk.dev
# public: /var/www/html/mynewsdesk.dev/public

<VirtualHost *:80>
     ServerAdmin [email protected]
     ServerName mynewsdesk.dev
     ServerAlias www.mynewsdesk.dev
     DirectoryIndex index.php
     DocumentRoot /var/www/html/mynewsdesk.dev/
     ErrorLog /var/www/html/mynewsdesk.dev/public/logs/error.log
     CustomLog /var/www/html/mynewsdesk.dev/public/logs/access.log
     combined
</VirtualHost>


在chrome inspector中,我看到“无法加载资源:服务器响应状态为404(未找到)”,其后是明显不正确的路径,例如:http://45.79.67.59/mynewsdesk.dev/css/main.css.php

我应该更改哪些设置,以便从“ mynewsdesk.dev/public/”而不是“ mynewsdesk.dev”提取文件?

最佳答案

将您的DocumentRoot更改为/var/www/html/mynewsdesk.dev/public/

或者,如果您要运行的脚本不在该目录中,并且已启用mod_rewrite,则可以添加一些重写条件和规则以从public返回文件,并将所有其他请求定向到这些脚本。

例如,在您的虚拟主机中:

RewriteEngine on

RewriteCond          %{DOCUMENT_ROOT}/public%{REQUEST_URI}  -f
RewriteRule  ^(.+)$  %{DOCUMENT_ROOT}/public/$1  [L]

RewriteRule ^(.*)$ index.php?$1 [NC,L,QSA]

关于php - 无法在Apache服务器上加载资源,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38643073/

10-11 06:24