【问题标题】:Cannot deploy a PHP project with nice .htaccess URLs无法使用漂亮的 .htaccess URL 部署 PHP 项目
【发布时间】:2021-12-26 13:46:27
【问题描述】:

直到昨天,我只使用https: //myproject/mapage.php 之类的 URL 部署了我的 PHP 项目。今天我有一个项目,其中包含一个 .htaccess 用于重写 URL 的文件(没有扩展名)。 Myproject 仅包含 3 个主要元素:

  • 包含所有应用程序逻辑的文件夹/应用程序
  • 一个/公共 包含图像、js、css [...] 文件的文件夹,最重要的是 前端控制器(index.php)
  • .htaccess 文件,包含以下内容 内容:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) public/index.php/$1 [L]

问题是,当我在本地服务器上时,该项目运行良好,但是当我将它部署在我服务器的子域上时:http://dev.example.org,我收到以下消息:

找不到文件。

*** 我的服务器配置在非共享的 Debian Stretch 专用服务器上。我们在此使用 plesk obsidian 18。通过搜索apache的参数,我发现上面配置了虚拟主机。

主域和子域配置在另一台服务器上,并指向我们的 Debian Stretch Dédicated 服务器的 IP 地址。

有人可以帮我正确部署我的项目吗?

标签: php .htaccess model-view-controller


【解决方案1】:

首先,我会确保在您的 Apache Web 服务器中启用了 .htaccess。 您需要打开站点的配置文件(例如 /etc/apache2/sites-available/example.com.conf)并确保站点的 <Directory> 字段包含 AllowOverride All

其次,您需要确保启用了 mod_rewrite。 您可以使用apachectl -M | sort 列出已启用的模块。
如果它被禁用,您可以通过运行a2enmod rewrite 来启用它。

【讨论】:

  • 这些点是有效的,但这是一个盲目的猜测。与其建议您实际上不知道对设置进行特定更改,不如建议首先找出实际问题是什么更有意义。如果有人自己操作该 http 服务器(例外)并且确实可以访问服务器配置,那么 首先 检查 http 服务器的错误日志文件以找出实际问题是绝对有意义的是。并且只有然后决定采取什么行动......
猜你喜欢
  • 2014-09-26
  • 1970-01-01
  • 1970-01-01
  • 2019-02-27
  • 2011-07-31
  • 1970-01-01
  • 2012-05-07
  • 1970-01-01
相关资源
最近更新 更多