为什么这样做:
Options +ExecCGI
AddHandler fcgid-script .fcgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /app.fcgi/$1 [L]
但如果我远程RewriteCond
它不起作用,我就会收到内部服务器错误。
Options +ExecCGI
AddHandler fcgid-script .fcgi
RewriteEngine On
RewriteRule ^(.*)$ /app.fcgi/$1 [L]
如果我修改了RewriteCond
,例如像这样它也不起作用。
RewriteCond %{REQUEST_FILENAME} !-l
我想将所有请求重定向到app.fcgi。我不希望用户能够直接访问文件。
提前致谢!
答案 0 :(得分:5)
它给你内部服务器错误(500)因为没有RewriteCond
你的循环无限循环。
您可以使用此规则来阻止这种情况:
Options +ExecCGI
AddHandler fcgid-script .fcgi
RewriteEngine On
RewriteRule ^((?!app\.fcgi/).*)$ /app.fcgi/$1 [L,NC]
(?!app\.fcgi/)
是否定前瞻,如果请求已经/app.fcgi/
,则会阻止此重写规则执行。