我在.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
文件。
任何帮助?
答案 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
下。如果它是共享主机帐户,您可能在控制面板中有“错误”或“日志”功能。