我有一個(WordPress的)博客評論後,用戶重定向回到與他們的評論錨點的頁面。應該是這樣的:如何用%23重寫一個URL?
http://example.org/foo-bar/#comment-570630
但不知何故,我得到了很多的插件404的日誌文件我對於這樣的網址:
http://example.org/foo-bar/%23comment-570630
是否有寫的.htaccess重寫規則的方式解決這個問題?
獎勵問題: 任何想法爲什麼發生這種情況,我能做些什麼呢?
我有一個(WordPress的)博客評論後,用戶重定向回到與他們的評論錨點的頁面。應該是這樣的:如何用%23重寫一個URL?
http://example.org/foo-bar/#comment-570630
但不知何故,我得到了很多的插件404的日誌文件我對於這樣的網址:
http://example.org/foo-bar/%23comment-570630
是否有寫的.htaccess重寫規則的方式解決這個問題?
獎勵問題: 任何想法爲什麼發生這種情況,我能做些什麼呢?
%23
是#
的URL編碼表示。我懷疑你的重寫規則不會滿足%23
。你應該調查響應是如何構建的。具體來說,任何URL編碼功能。
但是,它可以通過重寫規則解決您的問題。瞭解您在提交評論後會向客戶返回兩個回覆。這就是爲什麼最好糾正第一個反應。
# http://example.org/foo-bar/%23comment-570630 -> http://example.org/foo-bar/#comment-570630
RewriteCond %{REQUEST_URI} %23comment-\d+$
RewriteRule (.+)\/%23-comment(\d+)$ http://host/$1/#comment-$2 [R=301]
這是未經測試,但應該工作(我不確定逃逸\%
,因爲它在mod_rewrite的特殊含義)。
重定向是如何完成的? – Gumbo 2010-03-13 13:36:36
@Gumbo:使用302找到的重定向。生成的頭文件如下所示:「位置:/ foo-bar /#comment-571738」 – janpio 2010-03-13 14:27:34
您可以發佈那樣的代碼嗎? – Gumbo 2010-03-13 15:38:02