当直接击中像/songs/123这样的URL时,我想将该URL重写/重定向到/index.php#/songs/123

我认为使用服务器执行此操作比创建重定向的“虚拟”页面更有效。

例如,我使用jQuery.address来“捕获”任何<a/>标记并将其href附加为哈希标记,从而可以无缝浏览该站点并保持浏览器历史记录的准确性。我仍然希望这些hrefs是指向适当内容的有效链接,但是如果有人在新标签页或类似标签中将其打开。

最佳答案

尝试这样的事情(在您的.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>

10-08 07:09