奇怪的htaccess问题

时间:2011-04-07 09:06:52

标签: php apache .htaccess

我在.htaccess

中有一个网站
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?menu=$1 [L,QSA]

#DirectoryIndex index.php

我的问题是甚至,如果我更改单个字母,网站会呈现500错误。即使我清空完整文件,它仍然显示500错误。

我想要做的是,域名上有这样的页面 http://www.example.co.uk/brochure/generate.php

generate.php目录中存在/brochure/文件。

generate.php仍未加载,而且正在加载index.php文件。

任何帮助?

2 个答案:

答案 0 :(得分:3)

尝试以下我知道应该工作的内容:

<IfModule mod_rewrite.c>
    #Turn the Rewrite Engine ON
    RewriteEngine On

    #Set the base where to rewrite the requests
    RewriteBase /

    #Allow direct file access
    RewriteCond %{REQUEST_FILENAME} !-f

    #Allow direct directory access
    RewriteCond %{REQUEST_FILENAME} !-d

    #Disallow certain files.
    RewriteCond %{REQUEST_FILENAME} !brochure\/generate\.php$

    #Rewrite URLS To GET[menu] and make sure this is the last rule.
    RewriteRule ^(.*)$ index.php?menu=$1 [L]
</IfModule>

如果您没有看到任何重写,请检查是否已安装重写模块。

答案 1 :(得分:0)

如果 empty 文件也触发500状态代码,那么错误就在其他地方:您没有编辑Apache正在使用的真实.htaccess文件,错误来自申请等

在任何情况下,您都应该找到错误日志:这是显示确切详细信息的位置。在Linux中,它通常位于/var/log/httpd之下。在Windows中,它可以在%ProgramFiles%\Apache Software Foundation\Apache2.2\logs下。如果它是共享主机帐户,您可能在控制面板中有“错误”或“日志”功能。