wordpress - Wordpress .htaccess 重定向问题
问题描述
最近,我从一个静态网站搬到了一个 WordPress 制作的网站。除了一件事,一切都完美无缺。
我的公司使用播放器来显示内容,播放器调用这样的 url 来获取内容:
https://mysite.fr/#thecontentpage.html
此网址来自旧网站。由于新网站现在在 WordPress 上,因此 URL 是一个更“经典”的 URL:
https://mysite.fr/thecontentpage.html
最好的解决方案是让玩家调用新的 url,但这是不可能的。所以我想用 做一个重定向,.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
我登陆主页而不是我想要的页面。
我该怎么做才能让我的重定向工作?
解决方案
您在这里不走运,因为主题标签永远不会发送到服务器,因为它是页内片段。它只被浏览器使用。因此 .htaccess 文件永远不会看到它,并且您不能针对它进行重写。因此,您必须想出一种在 WordPress 加载之前使用 JavaScript 进行重定向的独特方法。您很可能需要一个 index.php 页面来处理重定向,然后将您的规则中未捕获的任何内容直接发送到 WordPress。
更新
如前所述,您不能使用“WordPress”来执行此操作,因为它对服务器永远不会获取哈希部分不起作用。但是,您可以使用 JavaScript。将此代码放在您的<head>
标签内:
<script>
var $hash = window.location.hash.substring(1);
if( $hash.length > 0 ) {
window.location = $hash;
}
</script>
显然,您将希望真正改变这个简单的代码以进行更多增强的检查和验证,以便 example.com/#whatever 不会尝试重定向......但这对您来说是一个开始。您可以拥有一组“白名单”重定向并检查$hash
该数组......只是一个想法。
推荐阅读
- reactjs - 在子组件或父组件中触发 Google Optimize 实验或点击事件的任何标记,应用程序构建在 Meteor React Redux 之上
- qt - C++:Qt moc 不理解数字之间的引号分隔符
- javascript - 选择上的 boostrap 4 验证似乎不起作用
- spring - 我配置了Spring Aop + Transaction + Mybatis。但是,交易不起作用
- bash - 根据与每个文件关联的数字将名称更改为 bash 中的文件
- java - 试图升级到 Spring4 没有 xml 配置 webapp
- angular - 将 FormArray 动态添加到 FormGroup
- ios - 如何在 NSManagedObject 的 Child 类中创建 let 属性
- angular - Angular Test failed 无法绑定到“header”,因为它不是“app-previewer”的已知属性
- office365 - XML 架构冲突 Office 加载项清单