作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 .htaccess 重写我网站上的 URL,但到目前为止还没有成功。我想向 URL 添加哈希并重定向。
我想获取 URL 中的最后一个文件并将其重定向到相同的 URL,但在最后一个文件之前附加一个 # 符号。我想这样做的原因是为了我的网站,所有内容都是动态加载的,无需刷新页面。
例如, www.example.com/foo会变成 www.example.com/#foo
或者 www.example.com/form/bar.php会变成 www.example.com/form/#bar.php
我不介意是否每个页面都需要一个条目,我尝试了很多变体,但到目前为止没有任何效果。
RewriteRule ^(.*)foo(.*)$ $1#foo$2 [R=301,L]
RewriteRule ^(.*)/(.*)$ /$1#$2 [L,R=301,NE]
最佳答案
在你的 .htaccess 中这样设置:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.*/)([^/]+/?)$
RewriteRule ^ %1#%2 [L,NE,R=301]
关于 RewriteCond %{REQUEST_URI} ^(.*/)([^/]+/?)$
的注释:
我们在这里使用正则表达式中的 2 个捕获组:
(.*/)
:匹配最后一个/
之前的最长匹配,表示为%1
之后([^/]+/?)
:匹配后面表示为%2
的URI的最后一个组成部分在 target 中,我们使用 %1#%2
在两个反向引用之间放置一个 #
。
关于regex - 使用 htaccess 添加 # 符号并重定向到 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70987713/
我是一名优秀的程序员,十分优秀!