2017-10-15 67 views
0

我想在LAMP使用Apache的配置来运行一个PHP项目,但它不工作*,而当我运行它php -S locahost:4000其工作真的很棒。 这里是链接到项目,如果你需要这些文件的一些信息或它的工作Project运行Apache的,而不是PHP核心PHP项目-S本地主机:4000

这里是我的Apache配置 -

<VirtualHost localhost:4000> 
ServerAdmin [email protected] 
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

+1

请解释什么是“不工作”的意思,并使用你的浏览器开发工具,以检查HTTP响应后工作接收。 – Calimero

+0

“不工作”是指运行它时,通过Apache我只能访问索引页,并要该项目的其他一些网页时,像''本地主机:4000/about''这表明''没有找到所请求的URL /部门在这台服务器上.'' –

+0

当然你在生产服务器上时不使用localhost:4000。您正在将服务器名称放在那里。 –

回答

0

我认为,你期望“的index.php”接收所有请求。 现在,Apache正试图找到“关于”目录和“部门”目录。 为了让Apache在任何URL上运行index.php,我们需要使用重写规则。

虽然我没有详细验证它,我想它会与下面的规则工作。

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

你说得对,我期望index.php接收所有请求。 您提供的解决方案不能解决问题。 –

0

现在能够从阿帕奇a2enmod rewrite和更新.htaccess文件的内容如下

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