访问目录,而mod重写打开

我正在使用下面的.htaccess文件来保持我的URL干净

RewriteEngine On RewriteRule ^([a-zA-Z\-0-9]+)/?$ index.php?get1=$1 [B] RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ index.php?get1=$1&get2=$2 RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ index.php?get1=$1&get2=$2&get3=$3 

它的工作到目前为止,但我现在想访问一个目录。

例如。 如果有人去mysite.com/news/post-title,URL被重写,一切正常。

现在我想拥有一个目录,当有人转到mysite.com/directory并显示其内容时,可以查看该目录。

有没有办法做到这一点?

把一个RewriteCond放在每个RewriteRule前面,如果请求到一个目录的位置并且存在的话,强制RewriteRule被跳过。

 RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([a-zA-Z\-0-9]+)/?$ index.php?get1=$1 [B] RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ index.php?get1=$1&get2=$2 RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ index.php?get1=$1&get2=$2&get3=$3 

所有这一切都将得到你是真正的目录列表。 如果您希望允许用户访问这些目录中的文件,则还应该为每个检查文件存在的人添加一个条件:

 RewriteCond %{REQUEST_FILENAME} !-f 

我会去做以下的事情;

 <Location /Somedirectory> Options Indexes </Location> RewriteEngine On RewriteCond %{REQUEST_FILENAME} -d [NC] RewriteRule ^/Somedirectory - [L] RewriteRule ^([a-zA-Z\-0-9]+)/?$ index.php?get1=$1 [B] RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ index.php?get1=$1&get2=$2 RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ index.php?get1=$1&get2=$2&get3=$3