当直接点击/songs/123
这样的网址时,我想将该网址重写/重定向到/index.php#/songs/123
。
我认为使用服务器执行此操作比创建重定向的“虚拟”页面更有效。
例如,我使用jQuery.address来“捕获”任何<a/>
标记,并将其href
附加为哈希标记,从而可以无缝地导航网站并保持浏览器历史记录的准确性。我仍然希望这些href成为相应内容的有效链接,但是如果有人在新标签或类似标签中打开它。
答案 0 :(得分:7)
由于URL片段仅在客户端上很重要,因此您需要强制客户端重定向。
RewriteRule ^/songs/(.*) /index.php#/songs/$1 [R,L,NE]
答案 1 :(得分:1)
尝试这样的事情(在.htaccess中):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^/songs/(.+)$ /index.php#/songs/$1 [R,L,NE]
</IfModule>
或者更极端的情况,捕获任何不是文件/目录的内容:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /index.php#$1 [R,L,NE]
</IfModule>