.htaccess htaccess URL重写模式格式

.htaccess htaccess URL重写模式格式,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我已经仔细阅读了所有其他htaccess url重写问题,但所有这些问题都与我的问题相反 我正在工作的站点从WordPress中的子页面获取内容,并将它们作为锚定部分显示在父页面上。该网站现在的问题是,如果谷歌(或内置搜索,尽管这可能在模板中实现)链接到其中一个子页面,它会将用户指向单个页面,而不是父页面的正确部分 我希望能想出一个URL重写模式,将URL重新格式化为我所需要的,但它似乎不起作用。。。我知道那是因为我做错了 需要重写的URL类似于: website.com/parent-page

我已经仔细阅读了所有其他htaccess url重写问题,但所有这些问题都与我的问题相反

我正在工作的站点从WordPress中的子页面获取内容,并将它们作为锚定部分显示在父页面上。该网站现在的问题是,如果谷歌(或内置搜索,尽管这可能在模板中实现)链接到其中一个子页面,它会将用户指向单个页面,而不是父页面的正确部分

我希望能想出一个URL重写模式,将URL重新格式化为我所需要的,但它似乎不起作用。。。我知道那是因为我做错了

需要重写的URL类似于:

website.com/parent-page/child-page/
我需要将其改写为:

website.com/parent-page/?subpage=child-page
我最初的尝试看起来是这样的,但我知道我误解了如何格式化模式

RewriteRule ^/$1?subpage=$2      ^/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/$
有人能帮我正确设置格式或指出我的错误吗?

您可以使用:

RewriteRule    ^([^/]+)/([^/]+)/$        /$1/?subpage=$2   [L]
RewriteEngine on 
# If the request is not for a valid file/directory
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)/?$ /$1/?subpage=$2   [QSA,L]
htaccess-RewriteRule
第一个uri中没有首字母
/

可选的最后一个
/
htaccess重写似乎不起作用,因此我创建了一个PHP重定向,取而代之的是使用页面slug、页面父级permalink并将两者混合在一起


我想这不是最优雅的解决方案,但它很有效。

谢谢,克罗斯。。。它似乎对我不起作用,但这更可能与网站有关——然而,我已经设法创建了一个PHP重定向,似乎可以替代它!现在打开
重写引擎试试
谢谢,杰里米。。。它似乎对我不起作用,但这更可能与网站有关——然而,我已经设法创建了一个PHP重定向,似乎可以替代它!好的,但是在Apache级别处理它可能比PHP重定向更具可伸缩性。我还修正了我的重写规则,删除了初始斜杠,谢谢。