htaccess条件和声明?

时间:2014-07-03 08:54:35

标签: .htaccess

在我的.htaccess结束时,我重定向了我认为有问题的所有网址。 这是完美的,但我需要一个例外的自己的电脑 对于我的firefox浏览器,我希望服务器作为每个其他请求做出反应 对于我的Chrome浏览器,我想要完全访问服务器上的所有文件 我这样做,它的工作原理:

RewriteCond %{REQUEST_URI} !=/index.php
RewriteCond %{REQUEST_URI} !=/retpic.php
RewriteCond %{REQUEST_URI} !^/pcs/.*$
RewriteCond %{REMOTE_HOST} ^11\.11\.1\.11$
RewriteCond %{HTTP_USER_AGENT} Firefox

RewriteRule . index.php [L]

RewriteCond %{REQUEST_URI} !=/index.php
RewriteCond %{REQUEST_URI} !=/retpic.php
RewriteCond %{REQUEST_URI} !^/pcs/.*$
RewriteCond %{REMOTE_HOST} !^11\.11\.11\.11$

RewriteRule . index.php [L]

但我最终将整个代码加倍...是否有更优雅的解决方案,例如将以下内容与AND语句结合起来? (我发现了一些关于OR语句的内容,但没有关于AND的内容)

RewriteCond %{REMOTE_HOST} ^11\.11\.1\.11$
RewriteCond %{HTTP_USER_AGENT} Firefox

编辑:添加了有关代码如何工作的更多说明:

RewriteCond %{REMOTE_HOST} !^11\.11\.11\.11$

这是从第二部分它从我的规则中排除了我的ip所以我可以访问服务器上的所有文件,这很重要,因为我希望能够访问我的cms

RewriteCond %{REMOTE_HOST} ^11\.11\.1\.11$
RewriteCond %{HTTP_USER_AGENT} Firefox

当我在家时,这部分包括我的firefox浏览器,所以我可以看到该网站是否适用于所有限制。为什么我有这个规则:我正在我的网站上工作并重组一些部分,它继续为我工作,但当我在朋友的地方,我注意到它没有,所以我需要一些东西,以便能够在家检查。

1 个答案:

答案 0 :(得分:0)

你需要应用一点布尔代数来将这些规则合并为一个。

你可以为你做这件事:

RewriteCond %{REMOTE_ADDR} !=11.11.2.11 [OR]
RewriteCond %{HTTP_USER_AGENT} Firefox
RewriteRule !(index\.php|retpic\.php|pcs/) index.php [L,NC]