我想将所有传入的请求重定向到另一个网址,如果它不包含#和admin。我需要它为angular.js,但我有/ admin与PHP
例如:
http://example.com/link-to-article - > http://example.com/#/link-to-article
http://example.com/admin/ *不会重定向
答案 0 :(得分:4)
您可以在DOCUMENT_ROOT/.htaccess
文件中使用此代码:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^((admin|login)(/.*)?)?$ /#%{REQUEST_URI} [L,NC,NE,R=302]
另请注意,在#
之后,网络服务器不会成为部分网址,因为只能在客户端解析。
RewriteCond %{REQUEST_FILENAME} !-f
会针对所有文件跳过此规则。!
取消RewriteRule
模式((admin|login)(/.*)?)?
匹配/admin/
或/login/
OR emptry(着陆页)/#%{REQUEST_URI}
,其中%{REQUEST_URI}
代表原始URI。