Apache-.htaccess
因为我没有找到任何帮助我走出困境的答案,我几乎发疯了。。。非常感谢您的帮助 问题是:我重新启动了一个网站,想重定向旧的和未验证的/cgi-bin/。。。将站点添加到新索引。以下是我在.htaccess中得到的信息:Apache-.htaccess,apache,.htaccess,Apache,.htaccess,因为我没有找到任何帮助我走出困境的答案,我几乎发疯了。。。非常感谢您的帮助 问题是:我重新启动了一个网站,想重定向旧的和未验证的/cgi-bin/。。。将站点添加到新索引。以下是我在.htaccess中得到的信息: RewriteEngine On RewriteCond %{HTTP_HOST} !^www.example.com$ #(this works) RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L] #(this works
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.example.com$ #(this works)
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L] #(this works)
RewriteRule ^cgi-bin(.*)$ / [R=301,L] #(this doesn't work!)
RewriteRule ^pdf(.*)$ / [R=301,L] #(this works)
所以我的问题是这一行:
RewriteRule ^cgi-bin(.*)$ / [R=301,L]
如果我将完全相同的规则添加到测试服务器(相同的主机提供程序)的htaccess中,这将非常有效。唯一的区别是在htdocs之外存在一个cgi-bin文件夹,但我认为这不应该是问题所在。我看不出这里出了什么问题…问题是当
cgi-bin
存在于htdocs
之外时,htdocs
.htaccess
文件永远不会运行,因为它只适用于包含它的目录及其子目录。将cgi-bin
RewriteRule
放入.htaccess
文件中的cgi-bin
谢谢。我试过了,但也没用。。。无论我在调用/cgi-bin时得到“foribediden”,还是在调用/cgi-bin/其他东西时得到“not found”,您是否为您的cgi-bin目录设置了
块,并设置了允许覆盖所有项?否则将不处理.htaccess文件。您可能还需要Options+FollowSymlinks
。谢谢您的回答。不幸的是,我不能这样做,因为我没有访问httpd.conf的权限-它位于托管提供商处。也许我可以问一下……是的,您永远无法使用文档root.htaccess文件中的cgi bin做任何事情,因为它从未被检查过这些请求,所以最好按照您所说的与主机联系。