我有一小段代码可以将从我自己的域访问的页面重定向到它们的哈希地址,如下所示:
example.com/stationary.html => example.com/#/stationary
代码如下:
<IfModule mod_rewrite.c>
# Redirect requests to ajax pages the their hashes
RewriteCond $1 !=index [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example\.com/ [NC]
RewriteRule ^([a-zA-Z0-9\-_]+)\.html?$ /#$1 [NE,R]
</IfModule>
这会很好用,现在我想知道我是否可以让它重定向页面,例如
example.com/stationary => example.com/#!/stationary
破解上述代码无效。如能提供任何帮助,我们将不胜感激!
谢谢!
答案1
我不确定你认为“哈希地址”是什么;带有哈希标记的 URL 指的是锚点在相关页面上,它本身并不是资源。
有关详细信息,请参阅 RFC 2616。
无论如何,对于您的问题:您必须重复整个规则,包括所有 RewriteConds,以匹配其他内容。
RewriteCond $1 ! \.html?$ [NC]
...
RewriteRule ^([a-zA-Z0-9_-]+)$ /#!/$1 [NE,R]
此外,将“-“到集合的末尾,这样您就不必退出它了。
哦,去掉 IfModule;你会知道是否已加载。