2

我想写一个插件HTTP 404在用户请求时 返回license.txt,什么是正确action的钩子(有效和有效的阻塞方式)?

更新:

因为我无法控制 Web 服务器,所以我必须将其作为插件执行

4

3 回答 3

8

解决方案实际上非常简单。您需要创建写入 .htaccess 的插件。

  1. 在 /wp-content/plugins 创建licence_redirect文件夹。
  2. 在该文件夹中创建licence_redirect.php文件。
  3. 将下面的代码粘贴到这个licence_redirect.php php 文件中:
<?php
/*
Plugin Name: Licence redirect
Description: Redirects license.txt. to 404
Author: J. Wrong
Version: 0.1
*/
?>
<?php
function lr_flush_rewrites() {
    global $wp_rewrite;
    $wp_rewrite->flush_rules();
}

function lr_add_rewrites() {
    global $wp_rewrite;
    $lr_wp_rules = array(
        'license\.txt$' => '[R=404,L]',
    );

    $wp_rewrite->non_wp_rules = $lr_wp_rules + $wp_rewrite->non_wp_rules;
}

register_activation_hook( __FILE__, 'lr_flush_rewrites' );
add_action('generate_rewrite_rules', 'lr_add_rewrites');
  1. 安装并激活插件。
  2. 在管理面板中转到设置 -> 永久链接
  3. 按保存更改 从现在开始,您的 license.txt 请求将被重定向到 404。如果您无法在服务器上创建文件夹,那么您需要压缩插件的文件夹并使用 WP 管理员上传。干杯...现在计算赏金:P
于 2012-11-02T15:43:10.497 回答
2

你不能。使用标准的 WordPress .htaccess,对静态文件的请求根本不会传递给 PHP,因此无法挂钩它们。

于 2012-11-02T06:13:13.380 回答
1

有一个插件可以为您做到这一点。只需设置要重定向的文件及其目标。它甚至保留日志

http://wordpress.org/extend/plugins/redirection/

于 2012-11-07T22:58:40.267 回答