【问题标题】:RewriteCond: bad flag delimitersRewriteCond:错误的标志分隔符
【发布时间】:2012-12-06 01:46:10
【问题描述】:

我无法让这个 .htaccess 工作,因为有一些我无法确定的语法错误。当我访问该网站时,它会打印一个Internal Server Error

RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_ADDR} !^201\.191\.20\.108 #
RewriteCond %{REQUEST_URI} !^/mantenimiento\.php$ #
RewriteRule ^(.*)$ http://example.com/mantenimiento.php [R=307,L] #

顺便说一下,error_log 中会打印以下错误:

.htaccess: RewriteCond: bad flag delimiters

这个htaccess的想法是将所有请求从example.com重定向到example.com/mantenimiento.php,以模拟网站中的“维护模式”

【问题讨论】:

  • 如果您不显示请求的 URL,则无法猜测转换的模式。尝试把在浏览器地址栏中输入的URL(或通过其他方式请求)和您想要的替换(真实)URL的示例。
  • @FelipeAlamedaA,更新了详细信息。我认为网址无关紧要

标签: .htaccess mod-rewrite redirect


【解决方案1】:

这是一个例子:

请求的网址:

http://example.com

替换网址:

http://example.com/mantenimiento.php

RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^201\.191\.20\.108
RewriteRule ^(.*)$ http://example.com/mantenimiento.php [R=301,L] 

REQUEST_URI 不需要,因为没有。要工作,REMOTE_ADDR 不能是模式中​​的那个。也可以使用 [307,L] 进行临时重定向。

【讨论】:

  • 嗯,具体是什么问题? REQUEST_URI#?
  • # 开始注释,所以没有区别。另一方面,执行重写规则需要请求 URI,但请求的 URL 没有 URI。
  • 非常感谢您的帮助 :) 非常感谢您的宝贵时间
  • 不客气。需要注意的是,不应使用行尾的 cmets,因为它们现在会生成填满日志文件的警告。在这种情况下,情况并非如此,但最好记住这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-24
  • 1970-01-01
  • 2016-07-13
  • 2014-01-20
  • 1970-01-01
  • 2015-02-04
  • 1970-01-01
相关资源
最近更新 更多