使用插件修改默认的WordPress.htaccess

时间:2018-06-25 作者:John Doe

我正在开发一个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。

1 个回复
最合适的回答,由SO网友:MrWhite 整理而成

您当然不应该修改# BEGIN WordPress 块,因为这可能会被WordPress本身覆盖。

您应该在WordPress前端控制器之前创建一个新的部分。这将同样有效,并将指令分开。

无需使用<IfModule mod_rewrite.c> wrapper,事实上,您不应该在这个实例中使用wrapper,因为您的插件似乎依赖于启用的mod\\u rewrite。如果mod\\u rewrite不可用,您的插件将无法正常运行,因此如果不可用,您不应该“无声失败”。

旁白:也无需重复RewriteEngineRewriteBase 指令。如果您正在手动编码.htaccess 文件,则不会复制它们。然而,如果您是以编程方式注入此代码,那么您可能需要-以确保。(多个RewriteEngineRewriteBase 指令不受严格支持。任何给定上下文中的最后一个实例将赢得并控制整个文件。例如,如果RewriteEngine Off 作为.htaccess 那就是文件Off 对于整个文件RewriteEngine On 指令。)

结束

相关推荐

当子目录中有.htaccess或php.ini时,排除目录的.htaccess重写条件不起作用

我在服务器根目录中安装了WordPress(public_html) 对于我的一个客户,还有一个子目录,其中包含另一个程序员开发的脚本,他们仍在使用。问题是这个子目录有一个简单的.htaccess 具有密码保护的文件,以及php.ini 具有register_globals = on (是的,我知道……)。问题是,如果存在其中一个或两个文件,则RewriteCond %{REQUEST_FILENAME} !-d 条件不起作用,并重定向到404 WordPress页面。WordPress.htaccess