使用 htaccess 添加 # 符号并重定向到 url
Adding a # symbol and redirecting to a url using htaccess
我正在尝试使用 .htaccess 重写我网站上的 URL,但到目前为止还没有成功。我想向 URL 添加哈希并重定向。
我想获取 URL 中的最后一个文件并将其重定向到相同的 URL 但在最后一个文件之前附加一个 # 符号。我想这样做的原因是为了我的网站,所有内容都是动态加载的,无需刷新页面。
例如,
www.example.com/foo would become www.example.com/#foo
或
www.example.com/form/bar.php would become www.example.com/form/#bar.php
我不介意每一页是否需要一个条目,我尝试了很多变体,但到目前为止没有任何效果。
RewriteRule ^(.*)foo(.*)$ #foo [R=301,L]
RewriteRule ^(.*)/(.*)$ /# [L,R=301,NE]
像这样...
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/* /# [NC]
在你的 .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
之后
([^/]+/?)
:匹配 URI 的最后一个组成部分表示为 %2
之后
在目标中,我们使用 %1#%2
在 2 个反向引用之间放置一个 #
。
我正在尝试使用 .htaccess 重写我网站上的 URL,但到目前为止还没有成功。我想向 URL 添加哈希并重定向。
我想获取 URL 中的最后一个文件并将其重定向到相同的 URL 但在最后一个文件之前附加一个 # 符号。我想这样做的原因是为了我的网站,所有内容都是动态加载的,无需刷新页面。
例如, www.example.com/foo would become www.example.com/#foo
或 www.example.com/form/bar.php would become www.example.com/form/#bar.php
我不介意每一页是否需要一个条目,我尝试了很多变体,但到目前为止没有任何效果。
RewriteRule ^(.*)foo(.*)$ #foo [R=301,L]
RewriteRule ^(.*)/(.*)$ /# [L,R=301,NE]
像这样...
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/* /# [NC]
在你的 .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
之后([^/]+/?)
:匹配 URI 的最后一个组成部分表示为%2
之后
在目标中,我们使用 %1#%2
在 2 个反向引用之间放置一个 #
。