2015-10-13 81 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,,頁面父母永久鏈接和混合兩者在一起。

不是我認爲的最優雅的解決方案,但它有效。