如何在 Next JS 应用程序的子目录中创建 Wordpress
P粉006540600
2023-08-29 14:53:13
<p>亲爱的社区,您好,</p>
<p>我的网络应用程序在域名domain.com下使用next JS</p>
<p>现在我想在 example.com/community 下建立一个 wordpress 博客 (wordblog.com/community)</p>
<p>使用 Next JS Rewrites,我将其添加到我的下一个配置中:</p>
<pre class="brush:php;toolbar:false;">async rewrites() {
return {
fallback: [
{
source: "/community/:path*",
destination: `https://wordblog.com/community/:path*`,
},
],
}
},</pre>
<p>在我的 WordPress 安装文件夹中。</p>
<p>1- 将其添加到 .htacces</p>
<pre class="brush:php;toolbar:false;"><IfModule mod_headers.c>
<FilesMatch "\.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js)$">
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
</IfModule></pre>
<p>2-将此添加到 wp-config.php :</p>
<pre class="brush:php;toolbar:false;">define('WP_SITEURL', 'https://wordblog.com/community');
define('WP_HOME', 'https://example.com/community');
define('COOKIE_DOMAIN', '.example.com');</pre>
<p>3-添加了此 wp-content/themes/your-theme/functions.php</p>
<pre class="brush:php;toolbar:false;">remove_filter('template_redirect','redirect_canonical');
add_filter('rest_url', 'serve_rest_url_on_wp_subdomain');
function serve_rest_url_on_wp_subdomain ($url) {
return str_replace('https://example.com/community', 'https://wordblog.com/community', $url);
}</pre>
<p>但是当我访问domain.com/community时,它会将我重定向到wordblog.com/community。</p>
<p>此外,wordblog.com/community 的某些页面在 wordblog.com/community/pageX 下呈现,而不是在 domain.com/community/pageX 下呈现</p>
您也许可以在 apache 设置中使用 Alias 指令来解决此问题: https://httpd.apache.org/docs/2.0/mod/mod_alias.html#alias
这意味着您必须删除 nextJS 中的重定向。 Apache 会知道从您的 WordPress 安装中提供服务 /community。