第二个cgi-bin目录所需的RewriteCond和RewriteRule(在htaccess中)

时间:2018-10-19 20:42:49

标签: .htaccess mod-rewrite

我有一个带有内部搜索引擎的网站,该网站安装在public_html / cgi-bin目录中。该站点刚刚从http转换为https,并在.htaccess文件中添加了一些条目以使其正常运行。这个“公共方面”的搜索引擎现在运行良好。

该网站也有一个“私有”的一面,要求通过一个简单的受密码保护的目录登录才能到达那里。 “私有”端也有它自己的搜索引擎(不希望在公共端和私有端搜索之间出现混合结果),它位于public_html / private / cgi-bin目录中。

我遇到的问题是让RewriteCond和RewriteRule条目适用于此专用搜索引擎区域。如果我关闭RewriteRule,一切正常。如果我将其打开,则搜索结果页面上的任何链接都会显示“找不到页面”错误。 “专用”区域中的所有其他内容均已正确重定向并正常工作。

现在,.htaccess文件的RewriteEngine部分具有以下条目:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/cgi-bin/? [NC]
RewriteCond %{REQUEST_URI} !^/private/cgi-bin/? [NC]
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]]

当我转换为https时,某些条目是由cPanel脚本自动放置的。

我试图通过设置如下一组单独的RewriteCond和RewriteRule条件来解决其他cgi-bin目录:

RewriteCond %{REQUEST_URI} !^/private/cgi-bin/? [NC]
RewriteRule ^(.*)$ https://www.example.org/private/{REQUEST_URI} [L,R=301]]

但这在公共和私人方面都造成了破坏。

对于如何正确重定向到第二个cgi-bin目录的任何帮助,将不胜感激。

0 个答案:

没有答案