【发布时间】:2017-10-11 02:40:32
【问题描述】:
我有两个单独的 .htaccess 文件,我想将它们融合在一起,以便第一次重写始终优先,这会将一些流量重定向到 https 基础哪个域。然后,如果 url 处的文件不存在,则将流量发送到 php 文件。它是一个 url 缩短器,但如果返回 404,那么它会显示一个 404 错误页面。
以下是 .htaccess 文件的点点滴滴:
下面,我认为应该将除 kore.tt 和 korett.com 之外的所有 http 流量重定向到 https:
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^(www\.)?(kore\.tt|korett\.com) [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]
这是来自 url 缩短器的东西,它应该向 loader.php 发送不存在的流量
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /loader.php [L]
</IfModule>
但是如果返回 404 错误。那么这就是简单的 404 错误捕获。
ErrorDocument 404 /404.html
【问题讨论】:
-
您的
ErrorDocument 404永远不会执行,因为您的重写规则将所有非文件和非目录转发到loader.php
标签: .htaccess redirect mod-rewrite