代码之家  ›  专栏  ›  技术社区  ›  João Pimentel Ferreira

Wordpress页面PHP片段,用于将所有请求提取到子目录

  •  0
  • João Pimentel Ferreira  · 技术社区  · 2 年前

    我正在为Wordpress网站页面开发一个PHP代码片段。假设这个片段位于

    wp-example.com/abc
    

    但是当我打电话的时候

    wp-example.com/abc/def
    

    Wordpress假设它是一个完全不同的页面,并说页面不存在,我的代码片段也不适用。

    在我的PHP代码片段中,位于 wp-example.com/abc ,如何将所有请求提取到子目录 example.com/abc/** ?

    编辑:我不想修改我的网络服务器配置,我只想在Wordpress内修改

    1 回复  |  直到 2 年前
        1
  •  1
  •   IT goldman    2 年前

    你可以通过添加到来解决这个问题 .htaccess 文件2行:(未测试)

    RewriteEngine on
    RewriteRule ^/?abc/(.*)$ /abc [R,L]
    
        2
  •  1
  •   thesharifdev    2 年前

    使用这个.htaccess代码。

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /abc/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /abc/index.php [L]
    </IfModule>
    
        3
  •  1
  •   theaminul    2 年前

    步骤1:允许多站点

    要启用“网络设置”菜单项,必须首先在 wp-config.php 文件

    打开wp-config.php并添加此行 在上面 上面写着 仅此而已,停止编辑!写博客快乐。。 如果它在任何地方都没有这样说,那么在第一行上方的某个地方添加以require或include开头的行:

    /* Multisite */
    define( 'WP_ALLOW_MULTISITE', true );
    

    步骤2:安装网络

    上一步启用 网络设置 项目 “工具”菜单 。使用该菜单项转到 创建WordPress网站网络 屏幕

    要查看创建WordPress网站网络屏幕的示例,请查看 管理>工具>网络设置 .屏幕并非在所有情况下都完全一样。显示的示例是针对localhost上的安装,它限制了可用的选项。 https://prnt.sc/28ZPHhke7ZuQ

    步骤3:启用网络

    要启用您的网络,请按照“创建WordPress网站网络”屏幕上的说明进行操作。您看到的说明是为您的安装而定制的。它们可能与您在这里看到的示例不同。 https://prnt.sc/XBGn0dUbWMJR

    将第一个代码片段添加到 wp-config.php 直线正上方 该片段看起来像这样,但已根据您自己的网站进行了调整:

    // Example code but it is not the code of your website
    define('MULTISITE', true);
    define('SUBDOMAIN_INSTALL', true);
    define('DOMAIN_CURRENT_SITE', 'My Website');
    define('PATH_CURRENT_SITE', '/');
    define('SITE_ID_CURRENT_SITE', 1);
    define('BLOG_ID_CURRENT_SITE', 1);
    

    将第二个代码段添加到 .htaccess 文件并替换其他WordPress规则。

    // Example code but it is not the code of your website key
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    
    # add a trailing slash to /wp-admin
    RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
    
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
    RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
    RewriteRule . index.php [L]