.htaccess 重写条件:错误的标志分隔符

.htaccess 重写条件:错误的标志分隔符,.htaccess,mod-rewrite,redirect,.htaccess,Mod Rewrite,Redirect,我无法让这个.htaccess工作,因为有一些语法错误,我无法确定。当我访问网站时,它会打印一个内部服务器错误 RewriteEngine On RewriteBase / RewriteCond %{REMOTE_ADDR} !^201\.191\.20\.108 # RewriteCond %{REQUEST_URI} !^/mantenimiento\.php$ # RewriteRule ^(.*)$ http://example.com/mantenimiento.php [R=307

我无法让这个.htaccess工作,因为有一些语法错误,我无法确定。当我访问网站时,它会打印一个
内部服务器错误

RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_ADDR} !^201\.191\.20\.108 #
RewriteCond %{REQUEST_URI} !^/mantenimiento\.php$ #
RewriteRule ^(.*)$ http://example.com/mantenimiento.php [R=307,L] #
顺便说一下,错误日志中会打印以下错误:

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

以下是一个示例:

请求的URL:

http://example.com

替换URL:

http://example.com/mantenimiento.php

RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^201\.191\.20\.108
RewriteRule ^(.*)$ http://example.com/mantenimiento.php [R=301,L] 
不需要请求URI,因为没有。要工作,远程地址不能是模式中的地址。也可以使用[307,L]进行临时重定向。

以下是一个示例:

请求的URL:

http://example.com

替换URL:

http://example.com/mantenimiento.php

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

不需要请求URI,因为没有。要工作,远程地址不能是模式中的地址。也可以使用[307,L]进行临时重定向。

如果不显示请求的URL,则无法猜测转换的模式。请尝试在浏览器地址栏中输入URL(或通过其他方式请求)和所需替换(真实)URL的示例。@FelipeAlamedaA,用详细信息更新帖子。我认为url是不相关的,如果您不显示请求的url,就不可能猜测转换的模式。请尝试在浏览器地址栏中输入URL(或通过其他方式请求)和所需替换(真实)URL的示例。@FelipeAlamedaA,用详细信息更新帖子。我认为url是不相关的嗯,具体问题是什么?
REQUEST_URI
#
?#开始一条注释,因此没有任何区别。另一方面,执行重写规则需要请求URI,但请求的URL没有URI。非常感谢您的帮助:)我非常感谢您的时间,欢迎您。需要注意的是,不应使用行末尾的注释,因为它们现在会生成填充日志文件的警告。在这种情况下,情况并非如此,但最好记住这一点。嗯,具体问题是什么?
REQUEST_URI
#
?#开始一条注释,因此没有任何区别。另一方面,执行重写规则需要请求URI,但请求的URL没有URI。非常感谢您的帮助:)我非常感谢您的时间,欢迎您。需要注意的是,不应使用行末尾的注释,因为它们现在会生成填充日志文件的警告。在这种情况下,情况并非如此,但最好记住这一点。