2015-10-13 63 views
0

我已经通过所有其他htaccess url重写问题有一个很好的看法,但他们都处理我的问题的反向。htaccess URL重写模式格式

我正在处理的网站从WordPress中的子页面获取内容,并将它们显示为父页面上的锚定部分。现在的问题是,如果Google(或内置搜索,尽管可能在模板中完成)链接到其中一个子页面,它将引导用户访问单页而不是父页的正确部分页。

我希望能想出一个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-]+)/$ 

任何人都可以帮助正确格式或指出我要去哪里错了吗?

回答

1
RewriteRule ^([^/]+)/([^/]+)/$  /$1/?subpage=$2 [L] 
+0

谢谢,杰里米......它似乎并不适合我,但这更可能与网站有关 - 但是,我已经设法创建了一个PHP重定向,似乎可以完成这项工作! – spoonofmilk

+0

好的,但在Apache级别处理它可能会比PHP重定向更具可扩展性。我还修复了我的重写小册子,删除了最初的斜杠,谢谢Croises。 –

1

您可以使用:

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
而可选的最终/

+0

谢谢,Croises ...它似乎不适合我,但是这更可能与网站有关 - 但是,我已经设法创建了一个PHP重定向,似乎可以完成这项工作! – spoonofmilk

+0

现在试着用'RewriteEngine on' – Croises

0

htaccess的重写似乎没有工作,所以我创建一个PHP重定向,而不是通过采取页面slu,,页面父母永久链接和混合两者在一起。

不是我认为的最优雅的解决方案,但它有效。