首先,我已经跟着很多链接试图为自己解决这个问题,但我似乎无法让它为我工作。
我使用codeigniter作为框架,htaccess一切都很好并且运行良好,但我的客户希望在他们的系统上获取验证文件(谷歌验证的东西)。这些文件的名称类似于google1234324324232.html
这就是我目前的情况:
RewriteEngine on
RewriteCond $1 !^(index\.php|assets|img|css|js|sitemap*|robots\.txt)
RewriteRule ^(.*)$ index.php?/$1 [L]
所以我愚蠢地认为这会起作用:
RewriteEngine on
RewriteCond $1 !^(index\.php|assets|img|css|js|sitemap*|robots\.txt|*.html)
RewriteRule ^(.*)$ index.php?/$1 [L]
但这实际上给了我一个500错误,我猜它与通配符有关,我尝试了正则表达式模式匹配,但似乎总是失败。
答案 0 :(得分:0)
*
不起作用。它必须跟随您想要匹配0或更多的字符。同样地,sitemap*
可能没有按照您的想法行事。 sitemap*
将匹配以下任何内容:
sitema
sitemap
sitemapppppppppp
因为*
适用于p
。对于*.html
,*
没有要应用的字符,因此出现正则表达式错误。你想要:
.*\.html
.
字符表示“任何内容”。