我需要编辑模板区域并生成.htaccess
文件。这是.htaccess
文件模板的一部分。这些[NPAC_TMP:~core_dir]
是被替换的部分:
RewriteCond %{REQUEST_URI} !^[NPAC_TMP:~core_dir]/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ [NPAC_TMP:~core_dir]/$1
RewriteCond %{HTTP_HOST} ^(www.)?localhost:8888$
RewriteRule ^(/)?$ [NPAC_TMP:~core_dir]/index.php [L] ###DEFECTIVE LINE
红宝石脚本:
template_tag = line.match(/\[NPAC_TMP:~(.*)\]/).to_s
param = template_tag.split("~")[1][0..-2]
if(param == "core_dir")
line[template_tag]= CONFIG[:core_dir]
temp_file.puts line
end
当脚本运行时,除了最后一个之外,所有这些都被正确替换:
RewriteCond %{REQUEST_URI} !^core/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ core/$1
RewriteCond %{HTTP_HOST} ^(www.)?localhost:8888$
RewriteRule ^(/)?$ [NPAC_TMP:~core_dir]/index.php [L] ###DEFECTIVE LINE
这不是该方法运行的唯一模板文件,在所有其他文件中,它在所有项目都被替换的地方都能正常工作。
出于故障排除的目的,我复制了RewriteCond %{REQUEST_URI} !^[NPAC_TMP:~core_dir]/"
并将其直接放在有缺陷的行下方。这个添加的项目正确更新,但它上面的那个仍然没有。
然后,我也将有缺陷的行的副本直接放在它的正下方,并收到了两条有缺陷的行,这让我相信它的某些东西是这个完整的字符串的结构导致 REGEX 关闭:RewriteRule ^(/)?$ [NPAC_TMP:~core_dir]/index.php [L]
任何帮助将不胜感激。此外,如果您对如何缩短或改进脚本的 Ruby 部分有任何建议,我会全力以赴。