gpt4 book ai didi

php - .htaccess 使用 WordPress 插件重写

转载 作者:IT王子 更新时间:2023-10-29 00:13:18 25 4
gpt4 key购买 nike

我正在为自定义 WordPress 多站点网络构建 WordPress 插件,并且有一些文件使用 URL 变量从第二个数据库(不是 WordPress 数据库)加载信息。

在通过导航到 http://website.com/NAME-HERE 在 WordPress 之外构建的版本中,它将检查它是否是我数据库中的用户名,如果不是,则检查以查看如果它是我数据库中的一个组并加载对应于它的用户名或组的文件。

现在我完全不知道如何在 WordPress Multisite 中实现它。据我所知插件不能重写.htaccess?如何让它在所有网站上运行?

如果不是,最好的方法是什么?

我是否需要将我的 pretty.php.htaccess 重写到我的根目录并将页面指向位于插件中的文件?如果是这样,这如何与多个主题一起使用?

在这一点上,我认为我最好的选择是联系 StackOverflow 社区寻求帮助或指导。

.htaccess

RewriteEngine On  
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^(\w.+)$ ./pretty.php?pretty=$1 [QSA]

ErrorDocument 404 /404.php

漂亮的.php

// First check if passed pretty parameter is a username.
if(checkIfUserByUsername($_GET['pretty']))
{
$_GET['username'] = $_GET['pretty'];

include("USERNAME.php");

// If not a username, check to see if it's an event.
}else if(checkIfStreamByPretty($_GET['pretty'])){
$_GET['id'] = getStreamIdFromPretty($_GET['pretty']);

include("GROUP.php");
}else{
// If it's none, redirect to the 404 page.

include("404.php");
}

最佳答案

如果我了解您想要实现的目标,您可以通过多种方式来解决这个问题。您可能不需要使用任何重写。

最简单的解决方案是将“pretty.php”代码添加到 Wordpress 模板中的 header.php 文件中。这将加载到网站前端的每个请求。如果您需要它仅在特定页面上加载代码,只需使用 is_page 检查您所在的页面。

例如,在您的 header.php 中:

if(is_page("groups")){
if(checkIfUserByUsername($_GET['pretty']))
{
// the rest of your code
}
}

如果你想写一个 Wordpress 插件,你只需要在你的插件中使用“add_action”:

add_action('wp_head', 'function_containing_your_code');

同样,这将在每个页面上加载,因此只需检查您是否在要加载代码的页面上。

https://codex.wordpress.org/Plugin_API/Action_Reference/wp_head https://developer.wordpress.org/reference/functions/is_page/

此外,您可以编辑 .htaccess 文件,就像您可以编辑您的用户有权编辑的任何文件一样。假设您正在运行 apache 服务器,您的 .htaccess 文件需要具有允许编辑该文件的权限,并且您可以使用 PHP 编辑该文件。例如:

$file = fopen("/path/to/.htaccess", "a+");
fwrite($f, "RewriteRule ^(\w.+)$ ./pretty.php?pretty=$1 [QSA]");
fclose($f);

很多人会说让 PHP 写入您的 .htaccess 文件存在安全风险。我会说在某些情况下确实如此,但肯定并非总是如此。在允许 PHP 写入您的 .htaccess 文件之前让您了解权限。

关于php - .htaccess 使用 WordPress 插件重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46437797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com