【问题标题】:mod rewrite +d errormod重写+d错误
【发布时间】:2010-12-17 12:43:22
【问题描述】:

我正在使用这个 .htaccess 文件:

RewriteEngine on
RewriteCond %{REQUEST_URI} .(html|php)$ [OR]
RewriteCond -d
RewriteRule (.*) /index.php?s=$1 [L,QSA]

如果我尝试访问受规则影响的站点,我会收到 500 服务器错误。

我的日志说:

[Fri Dec 17 13:40:43 2010] [alert] [client 127.0.0.1] C:/xampp/htdocs/.htaccess: RewriteCond: bad argument line '-d'

如果我访问类似的东西:

http://localhost/icon/help.png

没问题

有人可以帮帮我吗?

【问题讨论】:

  • RewriteCond 需要两个参数

标签: mod-rewrite apache2


【解决方案1】:

RewriteCond 需要如下所示:

RewriteCond %{REQUEST_FILENAME} !-d

【讨论】:

  • 现在我得到:[Fri Dec 17 13:46:41 2010] [error] [client 127.0.0.1] 由于可能的配置错误,请求超出了 10 个内部重定向的限制。如有必要,使用“LimitInternalRecursion”增加限制。使用“LogLevel debug”获取回溯。
  • @Philipp 那是因为你已经建立了一个无限循环: index.php 也被重定向。如果要为不存在的文件重写 URL,请使用 -f 而不是 -d
  • @Philipp -d = 是现有目录 -f = 是现有文件 -s = 是现有符号链接
  • 好吧,如果我使用 -f 我会得到 [Fri Dec 17 13:52:04 2010] [alert] [client 127.0.0.1] C:/xampp/htdocs/.htaccess: RewriteCond: bad argument line '-f' :x 我想转发带有 .html 和 .php 的文件以及文件夹,例如 www.example.com/folder => www.example.com/index.php?s=folder
  • @Philipp 显示您正在使用的整行。你用的是REQUEST_FILENAME,对吧?
猜你喜欢
  • 2010-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多