[英]Issue with # in URL with a Wordpress theme?
我遇到了一個嚴重的問題,並且不知道發生了什么......我將指出導致此Wordpress驅動的門戶網站出現多個問題的一般問題。
重現步驟:
現在,考慮以下情況:
我已經嘗試過幾種與永久鏈接的組合,所以這不是問題。 我甚至在php中編寫了我自己的Comment鏈接生成器,只有一個簡單的href="#comments"
但還是沒有運氣......
如果您需要有關theloop.php中任何函數代碼的任何進一步信息或其他任何信息,請告訴我。
提前致謝 ! 問候
.htaccess的內容如下:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
這不是PHP問題,它是Javascript:當你重現它時很明顯,你可以通過禁用Javascript並在URL的末尾添加#comments
來測試它; 它會工作。
現在,我為你做了一些工作,罪魁禍首是一個名為hashchange.js
的Javascript文件。 例如,看看這一行:
function second_passed() {
if(current_page!=location.href {
get_page_by_hash(location.href);
}
setTimeout(second_passed,1000);
}
這解釋了為什么你看到它“工作”一秒鍾。
這是重定向:
jQuery(window).hashchange(function() {
var link = window.location.hash.replace("#", "");
get_page_by_hash(link)
});
請注意, hashchange
是jQuery Mobile中可用的事件處理方法。
<link rel="canonical" href="URL OF YOUR HOMEPAGE HERE>
將其添加到<head></head>
部分的header.php中,然后嘗試。 它不應該給404錯誤!
如您所知,頁面書簽的使用方式是錨點的href =“”指向#some-place。 為了實現這一點,#some-place必須是您希望轉到的頁面中元素的id。
例如:
http://gamersgeographic.com/monster-hunter-diary-1/#respond
應該帶你到那個頁面中id =“respond”的元素。
如果具有該ID的元素不存在,您將無法前往它,並且可能是導致404 Not Found的原因。 但是,如果元素確實存在於具有正確ID的頁面上,並且仍然重定向到404,那么您可能需要檢查Web服務器配置以確保它不以某種方式過濾#。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.