我的网页上有这样丑陋的网址
DOMAINNAME/gallery.php#filter=.filtername
我希望它们看起来像这样
DOMAINNAME/artwork/filtername/
我已经在我的.htaccess文件中尝试了这个
RewriteRule ^artwork/([^.]+)/ gallery.php#filter=.$1 [NE]
但这并不能解决问题。它只是DOMAINNAME/artwork/
答案 0 :(得分:1)
如果您要在网址中添加#
,则必须执行完全重定向,因为#
部分仅在浏览器中解释:
RewriteRule ^artwork/([^./]+)/?$ /gallery.php#filter=.$1 [L,NE,NC,R=302]
答案 1 :(得分:1)
我只是在我的环境中尝试了这一点,看起来,当它进行内部重写时,Apache会吞下包括#
之后的所有内容。无论你是否使用标记NE
,都会发生这种情况。
所以唯一的解决方案似乎是使用常规查询字符串,例如
RewriteRule ^artwork/([^.]+)/ gallery.php?filter=.$1 [L]
或用斜杠分隔过滤器
RewriteRule ^artwork/([^.]+)/ gallery.php/filter=.$1 [L]