.htaccess从带有结尾/文件夹的URL中删除扩展名

时间:2014-12-07 08:07:56

标签: apache .htaccess mod-rewrite url-rewriting

我正在使用当前代码从我的网址中移除.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/)之前,它工作正常,然后找不到文件夹2参数。我甚至不确定从哪里开始工作(我没有太多使用.htaccess的经验)

1 个答案:

答案 0 :(得分:0)

为什么不直接替换这两行:

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

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