我正在开发一个WordPress插件,它可以修改webroot文件夹上的标准WordPress .htaccess文件。目前,我将代码插入到# BEGIN WordPress块中,如下所示:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
# BEGIN This is my block
RewriteCond %{REQUEST_URI} \.(css|js)$
RewriteRule . index.php [L]
# END This is my block
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]这是最好的做法吗?或者我应该为这段代码创建一个新的块?
另外,在创建修改.htaccess的插件时,还有什么需要注意的吗?
我添加这个.htaccess块是因为我想在输出.css和.js文件之前修改它们的某些部分。
发布于 2018-06-25 11:42:52
当然,您不应该修改# BEGIN WordPress块,因为这很可能被WordPress本身覆盖。
您应该在WordPress前端控制器之前创建一个新的部分。这将同样有效,并保持指令分离。
不需要使用包装器,实际上在这个实例中不应该使用包装器,因为插件似乎依赖于启用了mod_rewrite。如果mod_rewrite不可用,您的插件将无法正常工作,因此如果没有,您就不应该“默默地失败”。
旁白:也没有必要重复RewriteEngine和RewriteBase指令。如果您正在手工编码.htaccess文件,那么您将不会复制它们。但是,如果您是以编程方式注入此代码,那么您可能需要-以确保。(不严格支持多个RewriteEngine和RewriteBase指令。任何给定上下文中的最后一个实例赢得并控制整个文件。例如,如果您将RewriteEngine Off放在.htaccess文件中的最后一个指令中,那么整个文件就是Off,尽管前面有RewriteEngine On指令。)
https://wordpress.stackexchange.com/questions/306886
复制相似问题