重写预览URL以包含index.php

时间:2016-10-02 作者:L Ebert

我们的WordPress网站有一个静态html主页。对域的请求返回index.html

这很好地满足了我们的目的,但在编辑期间尝试预览帖子或页面时出现了问题。因为预览URL不包括index.php 所有预览请求都显示静态主页;e、 g。,

http://www.example.com/?page_id=7848&preview=true

http://www.example.com/?post_type=solution&p=6480&preview_id=6480&preview_nonce=730eb2844c&preview=true
两者都显示主页。手动插入index.php 之间www.example.com/?<querystring> 工作并显示页面预览,但这很痛苦。

我在中尝试了以下方法functions.php, 这会更新.htaccess 文件,但仍会显示主页。

function custom_rewrite_preview( )
{
  add_rewrite_rule(
    \'(.*)\\?(.+)&preview=true$\',
    \'$1index.php?$2&preview=false\',
    \'bottom\'
  );
}
add_action( \'init\', \'custom_rewrite_preview\' );
我不确定函数和/或regex是否错误,或者重写是否需要在不同的时间进行。

2 个回复
SO网友:Andy Macaulay-Brook

不要更改您的重写。将HTML文件的内容放入首页。主题中的php模板文件。

SO网友:Ethan O\'Sullivan

您可以在中添加以下重写规则.htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} ^taxo=([^&]+)&([^=]+)=([^&]+)&([^=]+)=([^&]+)&([^=]+)=(.*)$
RewriteRule ^/?$ /%1/%2/%3/%4/%5/%6/%7? [L,R=301]
</IfModule>
清除浏览器的缓存和遵循此结构的任何域:

http://www.example.com/?page_id=7848&preview=true
将重定向到:

http://www.example.com/index.php?page_id=7848&preview=true
这已在我的终端使用验证和测试htaccess tester.

相关推荐

Redirect Css files to https

在哪里可以找到负责调用Css文件的文件,并测试它们的链接是http还是https?我想测试请求是否为https,如果是,那么很好,如果不是,请将其更改为https在函数中。php我找到了负责调用主题Css的函数,下面是它的代码:if (!function_exists(\'jobcareer_front_scripts\')) { function jobcareer_front_scripts() { global $jobcareer_options;