php-如果url不包含某些字符串,则htaccess重定向

我想将所有传入请求重定向到另一个不包含#和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

上一篇:为什么$_GET = index.php


下一篇:将.do扩展名用作所有php文件的.php扩展名