javascript - 如何更改地址栏中的 URL

标签 javascript jquery html .htaccess

我有静态 html 文件,我希望能够删除地址栏中网址末尾的 .html 文件扩展名。

因此,我希望它显示为 /?contact-us,而不是 /contact-us.html

这里需要注意的一件事是页面名称之前有一个问号。我想对任何 html 页面执行此操作,而不仅仅是 contact-us.html。我怎样才能实现这个目标?

最佳答案

您可以使用以下方法重写 .htaccess 中的单个页面:

RewriteEngine On 
RewriteRule    ^/contact-us.html$    /?contact-us    [NC,L] 

更具体地说,如果您想重写所有 .html 扩展名,您可以使用正则表达式来匹配页面模式:

RewriteEngine On 
RewriteRule ^(.*)(.html)$    /?$1    [NC,L] 

在上面的示例中,它将匹配任何 .html 扩展名。例如/example-page.html 将是/?example-page

您可以在此处的 htaccess 测试器上对其进行测试:http://htaccess.mwl.be/

但是,问号 (?) 是为查询字符串保留的,您的重写可能会陷入无限循环,因为规则将重写 http://www.example.com/example-page.htmlhttp://www.example.com/?example-page ,服务器将解析为 http://www.example.com/index.html?example-page ,这又会触发另一次重写,无限循环。

更好的方法是模拟目录结构,并将/example-page.html 重写为/example-page/这也为您带来了一些 SEO 好处,并且可以使用此 .htaccess 来完成:

RewriteEngine On 
RewriteRule ^(.*)(.html)$    /?$1/    [NC,L]

关于javascript - 如何更改地址栏中的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34499072/

相关文章:

javascript - AWS lambda 是否存储全局变量?

javascript - 按照规则使用 RegEx 验证电子邮件

jquery - 如何限制html中的默认工具提示宽度

jquery - nivo slider - 向 slider 添加文本

javascript - CSS - 将文本溢出的 Div 扩展到最近的自动换行

html - iPhone 在 Safari 中不显示字体

javascript - 正则表达式:\b 对于不以单词字符开头的字符串?

javascript - 突出显示当前页面

javascript - "Uncaught TypeError: Cannot read property ' 名称 ' of undefined"在递增数字时单击按钮

javascript - 你如何防止输入类型=提交关闭模式?