.htaccess在本地工作但不在服务器上工作

时间:2012-11-22 16:06:33

标签: php apache

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

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

-Server示例: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>

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

答案是在我的httpd.conf中我需要在一个特定位置设置AllowOverride All。它存在于某些目录中,但我猜不是默认的..

相关问题