由于我没有找到任何能够帮助我的答案,我差点要崩溃了......非常感谢您的帮助。
问题如下:我重新启动了一个网站,并想将旧的和无效的/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中,则会完美地运行。唯一的区别是cgi-bin文件夹位于htdocs之外,但我认为这不应该是问题。我无法看出问题在哪里...
<Directory>
块,并将AllowOverride all
设置为所有?否则,.htaccess文件将不会被处理。你可能还需要Options +FollowSymLinks
。 - user2493235