如何在htaccess中编写条件语句--Apache 2.2.15

时间:2016-04-23 15:23:08

标签: apache .htaccess

我在Wordpress外面使用了几个文件夹,如果文件不存在,我想显示一个自定义的404文件(不是404标准的Wordpress页面)。在这些文件夹中,我有一个.htaccess只有2行“RewriteOptions Inherit”和“ErrorDocument 404 /err/404.php”。它的工作正常,但问题是某些广告横幅有时没有在他们的脚本中使用他们的域名,而且我的日志中有错误。

[the_date] [error] [client IP] File does not exist: /home/admin/web/my_domain.com/public_html/folder_outside_wordpress/undefined, referer: http://my_domain.com/folder_outside_wordpress/my_file.php

基本上,如果在他们的脚本中使用/folder/file.php而不是http://ads-domain.com/folder/file.php,我的日志文件中会出现错误,因为我正在使用RewriteOptions Inherit。 所以,我的观点是只在缺少所请求的文件时使用“RewriteOptions Inherit”行,就像这样。

if (status == 404)
{
RewriteOptions Inherit
ErrorDocument 404 /err/404.php
}

Apache 2.2.15版

1 个答案:

答案 0 :(得分:0)

我发现了另一个option而没有使用RewriteOptions Inherit

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /err/404.php [L]