我有两个VPS服务于相同的PHP应用程序,但是可以使用两个不同的客户品牌。底层代码是相同的。我使用.htaccess将所有请求重定向到index.php
,然后使用我的MVC来呈现页面等。这是我的.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
# Some hosts may require you to use the `RewriteBase` directive.
# If you need to use the `RewriteBase` directive, it should be the
# absolute physical path to the directory that contains this htaccess file.
#
# RewriteBase /
Options -indexes
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
两台服务器都是一样的。我的Apache VirtualHost看起来如下:
<VirtualHost *:80>
ServerAdmin benedict@ovalbit.com
ServerName [REDACTED]
ServerAlias [REDACTED]
DocumentRoot /var/www/cloud/
DirectoryIndex index.php
LogLevel Error
ErrorLog /var/www/cloud/logs/error.log
CustomLog /var/www/cloud/logs/other.log Combined
<Directory /var/www/cloud/>
Options +ExecCGI
AllowOverride all
</Directory>
</VirtualHost>
正在运行a2enmod rewrite
会返回Module rewrite already enabled
。
我几乎100%肯定它重定向到它的文件可用,有没有办法记录mod_rewrite请求的结果所以我可以肯定?任何人都可以看到我可能犯的任何愚蠢错误吗?
我确定这不是由于Apache配置,因为我在同一个VPS上有另一个网站,它也使用mod_rewrite并且工作正常。