apache重写,如何忽略子目录并传递给处理程序

时间:2012-05-26 11:56:14

标签: apache mod-rewrite

在虚拟主机环境中,希望使用处理程序。对于指定的目录,例如images, script,希望Apache来处理它。对于所有其他子目录,希望传递给处理程序。

除最后一项要求外,一切正常。

注意:以下代码已被修正并正在工作

<VirtualHost 127.0.1.12:80>

  DocumentRoot /var/www
  RewriteEngine On
  ServerName monitor.phiddler.nit:80
  UseCanonicalName Off

  # for robots
  RewriteCond %{HTTP_HOST} ^.
  RewriteRule \.(php|php3|cgi|asp|aspx|jsp|cf|java|do|inc)$ /var/www [N,L]

  # regular subdirs
  RewriteCond %{HTTP_HOST} monitor.phiddler.nit
  RewriteRule ^/(css|image|script|admin|ckeditor)/(.*) /data/phiddler/http/$1/$2 [L]

  # ico file is in image
  RewriteCond %{HTTP_HOST} monitor.phiddler.nit
  RewriteRule \.ico$  /data/phiddler/http/image/$1.ico [L]

  # name beginning with "." rerouted to ajax handler
  RewriteCond %{HTTP_HOST} monitor.phiddler.nit
  RewriteRule /\. /data/phiddler/http/ajax.php [L,QSA]

  # all else goes to handler
  RewriteCond %{HTTP_HOST} monitor.phiddler.nit
  RewriteRule . /data/phiddler/http/handler.php [L]

</VirtualHost>

这应该很容易,但不知何故我错过了

另外,每个RewriteCond之前需要RewriteRule吗?

1 个答案:

答案 0 :(得分:0)

已将其修复为问题本身,以便作为正确的参考

问题的方式和代码布局不利于得到好的答案