我想将所有传入请求重定向到另一个网址(如果它不包含 # 和 admin)。我需要它用于 angular.js,但我有 /admin 和 php
例如:
http://example.com/link-to-article http://example.com/link-to-article -> http://example.com/#/link-to-article http://example.com/#/link-to-article
http://example.com/admin/ http://example.com/admin/* 不会重定向
您可以在您的DOCUMENT_ROOT/.htaccess
file:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^((admin|login)(/.*)?)?$ /#%{REQUEST_URI} [L,NC,NE,R=302]
另请记住,Web 服务器在之后不会包含 URL 部分#
因为这只能在客户端解决。
-
RewriteCond %{REQUEST_FILENAME} !-f
对所有文件跳过此规则。
- Using
!
否定整场比赛RewriteRule
pattern
-
((admin|login)(/.*)?)?
匹配任何东西/admin/
or /login/
或者为空(着陆页)
- 如果否定为真,则此规则将其重定向到
/#%{REQUEST_URI}
where %{REQUEST_URI}
代表原始 URI。
参考:
- Apache mod_rewrite简介 http://httpd.apache.org/docs/current/rewrite/intro.html
- Apache mod_rewrite 技术细节 http://httpd.apache.org/docs/current/rewrite/tech.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)