0

我的本地 Windows 机器上有 apache 和 PHP,我的 .htaccess 规则工作正常。我将所有文件上传到我的 Linux 服务器并得到不同的结果。我完全控制了我的 Linux VPS。它不是共享主机或任何东西。我创建了一个文件 showme.php,所有请求都应该转到该文件。showme.php 只是输出一些 $_SERVER 变量,所以我知道它有效。但是对服务器的每个请求都会给我 404 not found 。相同的请求在本地提供 showme.php 就像它应该的那样。

-本地示例:http://localhost/somepage(我得到了 showme.php 呈现的正确页面)

-服务器示例: http: //mydomain.com/somepage (我收到 404 消息)

这是我的 .htaccess 文件。我不明白为什么我会得到不同的结果。有文件权限的东西?

# AddType x-mapp-php5 .php
# AddHandler x-mapp-php5 .php

RewriteEngine on
Options +FollowSymlinks

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . showme.php [L]

ErrorDocument 404 /page-unavailable/

<files ~ "\.tpl$">
order deny,allow
allow from none
deny from all
</files>
4

2 回答 2

0

答案是在我的 httpd.conf 中,我需要将 AllowOverride All 设置在某个位置。它在某些目录中,但我想不是默认的..

于 2012-11-22T16:22:28.250 回答
0

如果您使用phpinfo()并进行搜索mod_rewrite(通常在配置下),您将能够判断您是否有能力使用RewriteRules. 这通常是您看到IfModule重写的原因:

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . showme.php [L]
</IfModule>
于 2012-11-22T16:09:44.230 回答