我的HTAccess之前正在工作。但我想在网站上添加一个FTP部分。决定所有FTP都将进入/ftp
,所有对/ftp/...
的请求都将在内部重定向到/ftp.php?dir=...
处理身份验证之类的问题,然后再使用readfile(...)
。作为正则表达式的n00b,我认为这样可行:(仅添加了ftp部分并添加了|ftp
)
RewriteEngine On
# http://httpd.apache.org/docs/2.4/rewrite/flags.html
# Match page
RewriteCond %{REQUEST_URI} !^/?(cydia|firmware|scripts|site|ftp)
RewriteCond %{REQUEST_URI} !^/?(robots.txt|ftp.php)
RewriteRule ^/?(.*)$ /site/index.php?title=$1 [PT,L,QSA]
# Match FTP
RewriteCond %{REQUEST_URI} ^/?ftp
RewriteRule ^/?(.*)$ /ftp.php?dir=$1 [PT,L,QSA]
RewriteRule ^/*$ /site/index.php [L,QSA]
基本上,我所做的是(我认为)匹配/ftp
为真,而不是如上所述。但是,这会在整个站点中给出500 Server Error
(表示HTAccess中存在问题)。我确定这是一个简单的错误,但我希望你能帮助我。
答案 0 :(得分:1)
你的问题是那些太行将重定向以ftp开头的所有内容(包括ftp.php,这将创建一个无限循环)
RewriteCond %{REQUEST_URI} ^/?ftp
RewriteRule ^?(.*)$ /ftp.php?dir=$1 [PT,L,QSA]
尝试用它替换它们:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/?ftp
RewriteRule ^/?(.*)$ /ftp.php?dir=$1 [PT,L,QSA]