我想将所有传入请求重定向到另一个不包含#和admin的URL.我需要angular.js,但是我有/ admin和php
例如:
http://example.com/link-to-article-> http://example.com/#/link-to-article
http://example.com/admin/ *将不会重定向
解决方法:
您可以在DOCUMENT_ROOT / .htaccess文件中使用以下代码:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^((admin|login)(/.*)?)?$/#%{REQUEST_URI} [L,NC,NE,R=302]
还要记住,Web服务器在#之后没有URL部分,因为它仅在客户端解决.
> RewriteCond%{REQUEST_FILENAME}!-f跳过所有文件的此规则.
>使用!否定RewriteRule模式中的整个比赛
>(((admin | login)(/.*)?)?匹配/ admin /或/ login /或空(登录页面)的任何内容
>如果否定为true,则此规则会将其重定向到/#%{REQUEST_URI},其中%{REQUEST_URI}表示原始URI.
参考文献:
> Apache mod_rewrite Introduction
> Apache mod_rewrite Technical Details