1

我的 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 中存在问题)。我确信这是一个简单的错误,但我希望你能帮助我解决这个问题。

4

1 回答 1

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]
于 2012-08-10T02:29:28.580 回答