apache - Apache重写所有以某些路径开头的URL除外

标签 apache mod-rewrite url-rewriting apache2 httpd.conf

我正在尝试重定向所有请求,除了那些以某些路径开头的请求。

例如,
http://www.example.com/mypath1 不应该重定向
http://www.example.com/mypath2 不应该重定向

其他所有应该重定向

到目前为止,香港专业教育学院试图使用这样的异常路径之一使其工作:

RewriteRule ^(?!/mypath1/).*$ http://www.google.com/? [R=301,L]

像这样:
RewriteCond %{REQUEST_URI} !^/mypath1/.* [NC]
RewriteRule ^.*$ http://www.google.com/? [R=301,L]`

像这样:
RewriteCond %{REQUEST_FILE} !^/mypath1/.* [NC]
RewriteRule ^.*$ http://www.google.com/? [R=301,L]

但是,我尝试的一切只是重定向所有请求。
有谁知道如何做到这一点?

最佳答案

我已经设法解决了这个问题,稍后我在apache配置中将我正在发出的请求重定向到错误页面,然后该页面被catch all redirect捕获。

如果其他任何人遇到类似的问题,我建议您使用apache RewriteLog,因为这有助于查明问题。为此,只需将其添加到您的VHOST中:

RewriteEngine on
RewriteLog "C:/devenv/Apache2/logs/rewrite.log"  
RewriteLogLevel 2

关于apache - Apache重写所有以某些路径开头的URL除外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8714041/

相关文章:

asp.net-mvc-4 - IIS 重写不适用于应用程序的根目录

php - 父级 : Received shutdown signal -- Shutting down the server

apache - 如何在 apache(xampp) 服务器中创建子域?

php - 调用未定义函数 'init_set'

linux - Codeigniter URL 重写 .htaccess 在 CentOS 上不起作用

.htaccess RewriteRule 用于处理隐藏和可见的 GET

iis - 使用BlogEngine进行URL重定向

apache - 如何从 URL 中删除 anchor 标记?

apache - apache 错误日志中的 httpdocs/cache 条目

apache - 将站点上的所有页面(包括子文件夹)的 mod_rewrite 改写为单个 php 页面