Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache-.htaccess_Apache_.htaccess - Fatal编程技术网

Apache-.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

因为我没有找到任何帮助我走出困境的答案,我几乎发疯了。。。非常感谢您的帮助

问题是:我重新启动了一个网站,想重定向旧的和未验证的/cgi-bin/。。。将站点添加到新索引。以下是我在.htaccess中得到的信息:

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做任何事情,因为它从未被检查过这些请求,所以最好按照您所说的与主机联系。