最近,我从静态网站转到了WordPress网站。除了一件事,一切都很完美。
我的公司使用播放器显示内容,玩家调用这样的网址来获取内容:
https://mysite.fr/#thecontentpage.html
此网址来自旧网站。由于新网站现在在WordPress上,网址是一个更经典的#34;一:
https://mysite.fr/thecontentpage.html
最好的解决方案是让玩家调用新网址,但这是不可能的。所以我考虑使用.htaccess
进行重定向,但它不起作用。
这是我的.htaccess
:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Redirect 301 https://mysite.fr/#thecontentpage.html https://mysite.fr/thecontentpage.html
即使有重定向,当我拨打https://mysite.fr/#thecontentpage.html
时,我也会登陆主页而不是我想要的页面。
如何让重定向工作?
答案 0 :(得分:1)
你在这里运气不好,因为hashtag从未发送到服务器,因为它是一个页内片段。它只被浏览器使用过。因此.htaccess文件永远不会看到它,并且您无法对其进行重写。因此,在WordPress加载之前,您必须提出一种使用JavaScript重定向的独特方法。您很可能需要一个处理重定向的index.php页面,然后将未在规则中捕获的任何内容直接发送到WordPress。
<强>更新强>
如上所述,你不能用&#34; WordPress&#34;因为它不会工作,服务器永远不会得到哈希部分。但是,您可以使用JavaScript。将此代码放在<head>
标记内:
<script>
var $hash = window.location.hash.substring(1);
if( $hash.length > 0 ) {
window.location = $hash;
}
</script>
显然,您需要真正更改此简单代码以进行更多增强的检查和验证,以便example.com/#whatever不会尝试重定向...但这对您来说是一个开始。你可以拥有一组&#34;白名单&#34;重定向并检查$hash
对阵该阵列......只是一个想法。
答案 1 :(得分:0)
由于我无法在PHP或.htaccess中进行重定向,因此我只使用Javascript进行重定向。
我将此脚本插入我子主题的 private void loadMessages(){
if(keys.size() == 0){
messagesList.clear();
Toast.makeText(getContext(), " size zero no results found",
Toast.LENGTH_SHORT).show();
}
else {
messagesList.clear();
for (int i = 0; i < 5; i++) {
if (i>=keys.size()){
Toast.makeText(getContext(), "list is less than 5 item",
Toast.LENGTH_SHORT).show();
}
else {
listPos = i;
String id = keys.get(i);
mWorkDatabase.child(id).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String messageKey = dataSnapshot.getKey();
NewWork message = dataSnapshot.getValue(NewWork.class);
itemPos++;
messagesList.add(message);
mAdapter.notifyDataSetChanged();
mRecyclerView2.scrollToPosition(messagesList.size() - 1);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
}
}
文件中:
header.php
由于此文件位于子主题中,因此我不会被主题更新所困扰。那我的问题就解决了!