我有这个网站,说http://example.com/
。我希望所有请求都重定向(用户必须在地址栏中查看网址)http://example.com/#!/the_requested_page
。
所以这就是我想要发生的事情:
http://example.com/
=> 显示http://example.com/
http://example.com/somepage
=> 显示http://example.com/#!/somepage
http://example.com/#!/somepage
=> 显示http://example.com/#!/somepage
如何使用.htaccess文件完成此操作?
我尝试了这个,但它没有完成上面列表的第二部分。
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/#!/
# Don't apply to URLs that go to existing files or folders
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all those to insert /folder
RewriteRule ^(.*)$ /#!/$1 [L]
如果我请求http://example.com/somepage
,则会在地址栏中显示该内容,但网站会显示主页(http://example.com
)。
除此之外,这不会重定向,但它只是重写......
我希望你能帮助我。
答案 0 :(得分:0)
摆脱第一个条件。 URL的#
部分从未发送到服务器,因此您无法与之匹配。然后将规则更改为:
RewriteRule ^(.+)$ /#!/$1 [L,R,NE]