首页 > 解决方案 > 当.htm 不在特定文件夹中时,htaccess 会重定向除 .htm 之外的所有内容

问题描述

目前我的 htaccess 文件中有以下规则。所有文件都应重定向,除非它们具有 .htm 或 .html 扩展名

RewriteRule \.(htm|html)$ - [NC,L]
RewriteRule ^([A-Za-z0-9-+_./]+)/?$  index.php?page=$1&%{QUERY_STRING}

现在的问题是 tinyMce 也有带有 .htm 的文件,在这种情况下,应该进行重定向。

所以,我想防止对.htm文件进行重定向,除非文件夹结构/ url在某处包含“tinyMCE”......我该怎么做?

标签: .htaccessredirectmod-rewriteurl-rewritingfriendly-url

解决方案


根据您显示的示例,您能否尝试以下操作。尝试在此处修复 OP 的尝试,请确保在测试 URL 之前清除浏览器缓存。

RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !tinyMCE [NC]
RewriteRule ^([A-Za-z0-9-+_./]+)/?$  index.php?page=$1&%{QUERY_STRING} [L]


第二种解决方案:或者也尝试使用以下规则,请尝试一次只放置一组规则或这些规则。

RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^((?!tinyMCE)[A-Za-z0-9-+_./]+)/?$  index.php?page=$1&%{QUERY_STRING} [L]

推荐阅读