.htaccess如果文件不存在?

时间:2016-11-18 09:00:09

标签: apache .htaccess

我有一个这样的目录:

/hop/disk1/0000/1231/file.txt

https://192.168.1.1/hop/disk1/0000/1231/file.txt

但是一些文件在hop中不存在,存在于hop2:

/hop2/disk1/0000/1231/file.txt

如果hop中不存在文件,如何将请求重定向到hop2?

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以设置具有前两个条件的重写规则:

  1. RewriteCond %{REQUEST_FILENAME} !-f - 对于存在的文件
  2. ,请求不是
  3. RewriteCond %{REQUEST_FILENAME} !-d - 对于存在的目录
  4. ,请求不是

    之后,规则本身很简单 - 在/hop/之后捕获整个文件路径并重写URI,使其以http://192.168.1.1//hop2/开头,并以相同的文件路径结束。

    RewriteRule ^/hop/(.*)$ http://192.168.1.1/hop2/$1 [L]
    

    全部放在一起:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} !-f  
    RewriteCond %{REQUEST_FILENAME} !-d  
    RewriteRule ^/hop/(.*)$ http://192.168.1.1/hop2/$1 [L]