从apache而不是php -S localhost:4000运行核心php项目

时间:2017-10-15 07:28:45

标签: php apache lamp

我正在尝试使用LAMP中的apache配置运行一个php项目,但它不能工作*,而当我以php -S locahost:4000运行它时,它的工作真的很棒。 如果您需要有关文件或其工作的一些信息Project

,这是项目的链接

这是我的apache配置 -

<VirtualHost localhost:4000>
ServerAdmin root@localhost
ServerName localhost
ServerAlias localhost
DocumentRoot /var/www/html/dir

<Directory "/var/www/html/dir">
AllowOverride None
Options None
Require all granted
</Directory>

*不工作意味着 - 当通过apache运行时,我只能访问索引页面,当进入项目的其他页面时,如localhost:4000/about它显示The requested URL /department was not found on this server.即。错误404。

2 个答案:

答案 0 :(得分:0)

我认为你期待&#34; index.php&#34;接收所有请求。 现在,Apache正试图找到&#34; about&#34;目录和&#34;部门&#34;目录。 为了让Apache在任何URL上运行index.php,我们需要使用Rewrite规则。

虽然我没有详细验证,但我想它可以使用以下规则。

RewriteEngine on
RewriteRule ^/(.*)$ /index.php

答案 1 :(得分:0)

现在可以在从apache启用a2enmod rewrite并更新.htaccess文件的内容后工作,如下所示

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA]