Apache .htaccess从URL中删除以/folder结尾的扩展名

Apache .htaccess从URL中删除以/folder结尾的扩展名,apache,.htaccess,mod-rewrite,url-rewriting,Apache,.htaccess,Mod Rewrite,Url Rewriting,我正在使用当前代码从我的URL中为我的一个项目删除.shtml: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)/$ $1.shtml RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.shtml RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !

我正在使用当前代码从我的URL中为我的一个项目删除.shtml:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ $1.shtml
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.shtml
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

它工作得很好,直到我创建了多个子文件夹,例如/folder1/folder2/,然后它就找不到folder2参数。我甚至不知道从这里到哪里去让它工作我没有太多的使用经验。htaccess

为什么不替换这两行呢:

RewriteRule ^([^/]+)/$ $1.shtml
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.shtml

RewriteCond %{DOCUMENT_ROOT}/$1.shtml -f
RewriteRule ^(.*)/$ /$1.shtml [L]