如何使用htaccess重定向所有子页面并排除特定的URL?

时间:2012-07-24 12:05:13

标签: .htaccess

我正在尝试使用htaccess重定向,但我不太了解htaccess和重定向。我想做的是:

重定向访问所有子页面和目录,例如

http://mydomain.com/index.php
http://mydomain.com/directory/
http://mydomain.com/new/directory/

到我网域上的特定网址说:

http://mydomain.com/one

我尝试用

redirect /index.php http://mydomain.com/demo/

但我的问题是如何从此重定向中排除特定的URL和目录?如何制定规则以排除重定向的特定页面?

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您选择的工具"应该是 RewriteCond

RewriteCond指令可用于过滤多个URL,并且每个条件仅适用于下一个RewriteRule指令 - 您可以"堆栈"但是,RewriteCond指令。

示例:

RewriteCond %{REQUEST_URI} !^/path/to/non/redirect/url.php$
RewriteCond %{REQUEST_URI} !^/path/to/another/non/redirect/url.php$
RewriteRule ^$ http://mydomain.com/one

但是,这可以简化为一个小问题:

RewriteCond %{REQUEST_URI} !^(/path/to/non/redirect/url.php|/path/to/another/non/redirect/url.php)$
RewriteRule /index.php http://mydomain.com/one

Apache Mod_Rewrite Documentation