直到昨天,我只部署了URL为https: //myproject/mapage.php
的PHP项目。今天,我有一个项目,其中包括一个用于重写URL(无扩展名(的.htaccess
文件。我的项目只包含3个主要元素:
- 包含所有应用程序逻辑的文件夹/应用程序
- a/public文件夹,其中包含图像、js、css[…]文件,最重要的是前端控制器(index.php(
- 包含以下内容的
.htaccess
文件内容:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) public/index.php/$1 [L]
问题是,当我在本地服务器上时,该项目运行良好,但当我将其部署在服务器的子域http://dev.example.org
上时,我会收到以下消息:
找不到文件
***我的服务器配置在非共享的Debian Stretch专用服务器上。我们在这上面使用了pleskobsidian18。通过搜索apache的参数,我能够意识到上面配置了虚拟主机
主域和子域在另一台服务器上配置,并指向我们的Debian Stretch Dédicated服务器的ip地址。
有人能帮我正确部署我的项目吗?
首先,我要确保在Apache web服务器中启用.htaccess。您需要打开站点的配置文件(例如/etc/apache2/sites-available/example.com.conf
(,并确保站点的<Directory>
字段包含行AllowOverride All
其次,您需要确保mod_rewrite已启用。您可以使用apachectl -M | sort
列出已启用的模块
如果它被禁用,您可以通过运行a2enmod rewrite
来启用它。