WAMP .htaccess从XAMPP移动后出现内部服务器错误

时间:2012-01-07 12:48:43

标签: php .htaccess wamp wampserver

不久前,我从xampp搬到了wamp 现在,当我进入我的网站时,出现了这个错误:

  

内部服务器错误服务器遇到内部错误或配置错误,无法完成您的请求。   请联系服务器管理员admin @ localhost并告知他们错误发生的时间,以及可能导致错误的任何操作。   服务器错误日志中可能提供了有关此错误的更多信息。

当我在.htaccess中使用此代码时:

<FilesMatch "\.(pdf|swf|js|css)$">
    Header set Cache-Control "max-age=604800"
</FilesMatch>

<FilesMatch "\.(html|cgi|php|htm)$">
    Header set Expires "Thu, 01 Dec 2003 16:00:00 GMT"
    Header set Cache-Control "no-store, no-cache, must-revalidate"
    Header set Pragma "no-cache"
</FilesMatch>


AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html

<Files *.js>
    SetOutputFilter DEFLATE
</Files>

<Files *.css>
    SetOutputFilter DEFLATE
</Files>  

如何解决此问题?


我找到了apache_error.log:

  

[Sat Jan 07 13:58:06 2012] [alert] [client 127.0.0.1] C:/wamp/www/website/.htaccess:无效的命令'Header',可能拼写错误或由未包含的模块定义在服务器配置中,referer:localhost

8 个答案:

答案 0 :(得分:26)

在wamp服务器中单击apache,apache模块并单击rewrite_module上的(mark)并重启wamp服务器,问题解决了

答案 1 :(得分:19)

正如XP1所说,答案是在WAMP中启用headers_module。

使用WAMP界面或将其添加到httpd.conf

LoadModule headers_module modules/mod_headers.so

答案 2 :(得分:11)

如果启用 mod_headers 没有修复您的问题,那么它是由 AddOutputFilterByType

引起的

可以通过启用另一个模块 mod_filter 来解决此问题。

添加&#39; ifModule&#39;可能也是一个好主意。代码,如果您的服务器设置被重置或您将项目迁移到其他服务器。这对我有用:

<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>

答案 3 :(得分:1)

在WAMP中进行了大量搜索之后,headers模块没有启用mod_headers模块。您可以在httpd.conf文件中启用mod_headers。在开始时,显示一个模块列表,只需找到mod_header并在其开始时删除#并重新启动WAMP。现在将启用并加载mod_headers模块。

答案 4 :(得分:1)

转到Wampmanger LeftClick,Apache然后ApacheModules并检查(rewrite_module),重启Apache,然后就可以了

答案 5 :(得分:1)

添加此代码并且代码应该可以正常工作

    <IfModule mod_expires.c>
<filesMatch ".(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Cache-Control "max-age=2628000, public"
</filesMatch>
</IfModule>

答案 6 :(得分:0)

我认为要在.htaccess文件中执行命令,应启用apache的重写模块,但默认情况下禁用它。

如果您使用WAMP,则只需点击任务栏中的wamp服务器图标 - &gt; Apache - &gt; Apache模块。这将显示模块列表。然后向下滚动以查找rewrite_module并单击它。当你点击它时,WAMP会在启用rewrite_module的情况下重新启动。

所以我认为如果你激活这个模块,它可能会解决你的问题。

答案 7 :(得分:0)

有时位置和网址之间的空格是解决方案 例如:

header('Location:usertimeline.php');

没有错误,而不是

header('Location:   usertimeline.php');

我是WAMP的初学者,因为我的标头模块和所有其他内容均已打勾,但仅此而已结束。