Regex 我以前工作的HTAccess不再工作

Regex 我以前工作的HTAccess不再工作,regex,apache,.htaccess,Regex,Apache,.htaccess,我的HTAccess以前工作过。但我想在网站上添加一个FTP部分。决定所有FTP将进入/FTP,所有对/FTP/…的请求将在内部重定向到/FTP.php?dir=…,在使用前处理身份验证等。作为regex的n00b,我认为这会起作用:(只添加了ftp部分,并添加了|ftp) 基本上,我所做的是(我认为)将/ftp匹配为真,而不是像上面那样的假。但是,这在整个站点中给了我一个500服务器错误(表明HTAccess中存在问题)。我确信这是一个简单的错误,但我希望你能帮我解决这个问题。你的问题是那些太

我的HTAccess以前工作过。但我想在网站上添加一个FTP部分。决定所有FTP将进入
/FTP
,所有对
/FTP/…
的请求将在内部重定向到
/FTP.php?dir=…
,在使用前处理身份验证等。作为regex的n00b,我认为这会起作用:(只添加了ftp部分,并添加了
|ftp


基本上,我所做的是(我认为)将
/ftp
匹配为真,而不是像上面那样的假。但是,这在整个站点中给了我一个
500服务器错误
(表明HTAccess中存在问题)。我确信这是一个简单的错误,但我希望你能帮我解决这个问题。

你的问题是那些太多的行将重定向从ftp开始的所有内容(包括ftp.php,这将创建一个无限循环)

尝试用以下内容替换它们:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/?ftp
RewriteRule ^/?(.*)$ /ftp.php?dir=$1 [PT,L,QSA]

您的问题是,这些太行将重定向从ftp开始的所有内容(包括ftp.php,这将创建一个无限循环)

尝试用以下内容替换它们:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/?ftp
RewriteRule ^/?(.*)$ /ftp.php?dir=$1 [PT,L,QSA]

我仍然得到服务器错误。使用
^/?(*)
修复了这个问题,但是现在它显示了
/ftp
的目录结构。是的,我没有看到这个错误(^?而不是^/?)。另一方面,尝试删除这一行:RewriteCond%{REQUEST_FILENAME}-dYour是欢迎的)很高兴它工作了(那行只是说,如果请求被发送到一个确实存在的目录,就不要重定向),我仍然得到了服务器错误。使用
^/?(*)
修复了这个问题,但是现在它显示了
/ftp
的目录结构。是的,我没有看到这个错误(^?而不是^/?)。另一方面,尝试删除这一行:RewriteCond%{REQUEST_FILENAME}-dYour是欢迎的)很高兴它工作了(那行只是说如果请求被发送到一个确实存在的目录,就不要重定向)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/?ftp
RewriteRule ^/?(.*)$ /ftp.php?dir=$1 [PT,L,QSA]