gpt4 book ai didi

wordpress - 重写到Wordpress基础之外的URL

转载 作者:行者123 更新时间:2023-12-04 04:31:33 25 4
gpt4 key购买 nike

我的wordpress博客安装在domain.com/blog上,并且我有一个页面,其子页面的结构类似于domain.com/blog/pagedomain.com/blog/page/subpage

我希望访问者能够转到domain.com/subpage并查看domain.com/blog/page/subpage的内容,而无需从外部重定向到该URL,从而避免了wordpress永久链接的重写。

我尝试使用RewriteRule ^subpage$ /page/subpage [L]并提供了内容,但该网址看起来像domain.com/blog/page/subpage(我猜Wordpress永久链接正在使用它。)

.htaccess:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]

// tried inserting my code here.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>

# END WordPress

编辑:

这些日志显示了页面访问的事件-
ip - - [19/Jun/2012:14:03:53 -0400] "GET /subpage/ HTTP/1.1" 301 - "http://domain.com/referrer/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:13.0) Gecko/20100101 Firefox/13.0.1"
ip - - [19/Jun/2012:14:03:53 -0400] "GET /blog/page/subpage/ HTTP/1.1" 200 20022 "http://domain.com/referrer/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:13.0) Gecko/20100101 Firefox/13.0.1"

另外,这是我的根目录.htaccess-
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^subpage/?$ /blog/page/subpage/ [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>

RewriteCond %{HTTP_HOST} ^domain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.domain.com$

最佳答案

使用Wordpress时,在htaccess中添加一些规则总是很棘手。相反,您应该使用其重写API。

首先,将此代码放在/wp-content/themes/CURRENT_THEME_ACTIVATED/functions.php的末尾:

function my_custom_page_rewrite_rule()
{
add_rewrite_rule('^subpage/?', 'index.php?pagename=page/subpage', 'top');
}
add_filter('init', 'my_custom_page_rewrite_rule');

备注:您需要在 pagename参数中指定页面级别,否则网址会更改。

然后,您需要告诉Wordpress它必须考虑您的新规则。为此,请转到管理面板: Settings> Permalinks>单击 Save按钮。现在,您应该可以转到 domain.com/blog/subpage并查看 domain.com/blog/page/subpage的内容(URL不再更改)。

最后是,如果要使 domain.com/subpage可以访问,则需要在根文件夹中添加htaccess并将此代码放入其中:
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ blog/$1 [L]

而且...就是这样。您可以转到 domain.com/subpage,现在您将获得所需的内容。

关于wordpress - 重写到Wordpress基础之外的URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11090088/

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