【问题标题】:.htaccess file blocks loading index page.htaccess 文件块加载索引页面
【发布时间】:2015-03-05 10:54:35
【问题描述】:

因为我是htacess 的新手,所以我生成了htacess 文件here,下面是我的代码

Order allow,deny
<Files .htaccess .htpasswd .htuser .htgroups >
order allow,deny
deny from all
</Files>
<IfModule !mod_ssl.c>
Redirect permanent / https://www.domain.com/
</IfModule>
RewriteEngine  on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain.com/.*$ [NC]
RewriteRule \.(gif|jpg|png)$ - [F]  
RewriteCond %{HTTP_USER_AGENT} Wget [OR] 
RewriteCond %{HTTP_USER_AGENT} CherryPickerSE [OR] 
RewriteCond %{HTTP_USER_AGENT} CherryPickerElite [OR] 
RewriteCond %{HTTP_USER_AGENT} EmailCollector [OR] 
RewriteCond %{HTTP_USER_AGENT} EmailSiphon [OR] 
RewriteCond %{HTTP_USER_AGENT} EmailWolf [OR] 
RewriteCond %{HTTP_USER_AGENT} ExtractorPro 
RewriteRule ^.*$ deny.html [L]
ErrorDocument 400 400.php
ErrorDocument 401 401.php
ErrorDocument 403 403.php
ErrorDocument 404 404.php
ErrorDocument 500 405.php
DirectoryIndex index.php

产生错误:

[Wed Jan 07 19:09:22.207084 2015] [core:alert] [pid 5032:tid 964] [client 200.195.156.150:43841] C:/wamp/www/.htaccess: Multiple <Files> arguments not (yet) supported.

和错误mod_rewrite 甚至配置了following method
当我删除 mt htacess 文件并运行我的服务器时,我的索引页面打开,所有 ErrorDocument 页面和 htacess 和索引页面都在 root 文件夹中,任何人都可以帮助我有什么问题

【问题讨论】:

  • 查看您的错误日志。如果有内部服务器错误,将在此处详细说明。
  • 先去掉所有代码,逐行添加调试,同时使用错误日志查看错误是什么。
  • @learn 问题是,您的 HTACCESS 抛出错误并且无法再加载.. 所以请查看 apache error.log 以查找并解决错误跨度>
  • 我仍然不明白人们是如何运行 Web 服务器的,也没有基本的原则来检查出现问题时的错误日志。您无法猜测自己的开发方式。
  • 它清楚地告诉你&lt;Files .htaccess .htpasswd .htuser .htgroups &gt; 不支持。这是正确的,您需要在其中为多种类型添加管道分隔符。 askapache.com/htaccess/…

标签: .htaccess mod-rewrite internal-server-error


【解决方案1】:

尝试使用 FilesMatch 而不是 Files,我认为这是产生错误的部分。

<FilesMatch "\.(htaccess|htpasswd|htuser|htgroups)$">
Order Allow,Deny
Deny from all
</FilesMatch>

我没有改变代码的其余部分。

<IfModule !mod_ssl.c>
Redirect permanent / https://www.domain.com/
</IfModule>
RewriteEngine  on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain.com/.*$ [NC]
RewriteRule \.(gif|jpg|png)$ - [F]  
RewriteCond %{HTTP_USER_AGENT} Wget [OR] 
RewriteCond %{HTTP_USER_AGENT} CherryPickerSE [OR] 
RewriteCond %{HTTP_USER_AGENT} CherryPickerElite [OR] 
RewriteCond %{HTTP_USER_AGENT} EmailCollector [OR] 
RewriteCond %{HTTP_USER_AGENT} EmailSiphon [OR] 
RewriteCond %{HTTP_USER_AGENT} EmailWolf [OR] 
RewriteCond %{HTTP_USER_AGENT} ExtractorPro 
RewriteRule ^.*$ deny.html [L]
ErrorDocument 400 400.php
ErrorDocument 401 401.php
ErrorDocument 403 403.php
ErrorDocument 404 404.php
ErrorDocument 500 405.php
DirectoryIndex index.php

【讨论】:

  • 除了缺少第一行之外,这与问题中的代码相同。我只是对两者进行了比较
  • 我想我应该更准确,抱歉。我建议使用 FilesMatch 指令而不是 Files - 这是处理多个文件时的首选方式(似乎这部分导致错误)。
  • @learn 您能否发布在应用我建议的更改后生成的日志错误?似乎有点奇怪,错误完全一样...
  • @Poodel C:/wamp/www/.htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration
  • 好的。文件问题已经解决了,现在你需要启用 mod_rewrite:stackoverflow.com/questions/10144634/…
【解决方案2】:

从 .htaccess 中删除所有代码,只保留以下代码。

RewriteEngine  on
ErrorDocument 400 400.php
ErrorDocument 401 401.php
ErrorDocument 403 403.php
ErrorDocument 404 404.php
ErrorDocument 500 405.php
DirectoryIndex index.php

【讨论】:

  • 但我需要所有 rewrite 规则
  • 你使用任何cms吗?像wordpress
  • @CmsCoders 如果我可以提出一些建议,请查看this help item。你的一些答案只是具有戏剧性的质量,在经历了所有这些之后,我找不到任何我会考虑支持的答案。我建议仔细阅读您的旧答案并对其进行编辑以提高其质量。
  • 相信我下次会注意的
猜你喜欢
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 2019-06-25
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多