我正在开发一个WordPress插件,修改标准WordPress。webroot文件夹上的htaccess文件。目前,我将代码注入# BEGIN WordPress
块,如下所示:
# BEGIN WordPress
<IfModule mod_rewrite.c>
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]
</IfModule>
这是最佳实践吗?或者我应该创建一个新的
<IfModule mod_rewrite.c>
是否阻止此代码?
另外,在创建修改的插件时,还有什么我应该注意的吗。htaccess?
P、 我正在添加这个。htaccess阻止,因为我要修改的某些部分。css和。在我输出js文件之前,先使用PHP。
最合适的回答,由SO网友:MrWhite 整理而成
您当然不应该修改# BEGIN WordPress
块,因为这可能会被WordPress本身覆盖。
您应该在WordPress前端控制器之前创建一个新的部分。这将同样有效,并将指令分开。
无需使用<IfModule mod_rewrite.c>
wrapper,事实上,您不应该在这个实例中使用wrapper,因为您的插件似乎依赖于启用的mod\\u rewrite。如果mod\\u rewrite不可用,您的插件将无法正常运行,因此如果不可用,您不应该“无声失败”。
旁白:也无需重复RewriteEngine
和RewriteBase
指令。如果您正在手动编码.htaccess
文件,则不会复制它们。然而,如果您是以编程方式注入此代码,那么您可能需要-以确保。(多个RewriteEngine
和RewriteBase
指令不受严格支持。任何给定上下文中的最后一个实例将赢得并控制整个文件。例如,如果RewriteEngine Off
作为.htaccess
那就是文件Off
对于整个文件RewriteEngine On
指令。)