重定向规则以允许 html 页面存在于目录 url
Posted
技术标签:
【中文标题】重定向规则以允许 html 页面存在于目录 url【英文标题】:Redirect Rules to allow html page to exist at directory url 【发布时间】:2014-01-12 08:46:42 【问题描述】:我有一个名为 /subject1/
的目录,其中包含所有子主题,例如 /subject1/subtopic1.html
、 /subject1/subtopic1.html
、 /subject1/subtopic1.html
等等
我也想拥有一个/subject1.html
页面,但无法让.htaccess
工作,因为我在没有.html
的情况下重写了页面(我也打破了我的尾部斜杠)
我有:
RewriteEngine on
RewriteCond %HTTP_HOST ^example.com$
RewriteRule ^(.*)$ "http\:\/\/www\.example\.com\/$1" [R=301,L]
和
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME.html -f
RewriteRule ^(.+)$ $1.html [L,QSA]
和
RewriteCond %THE_REQUEST ^[A-Z]3,9\ /.*\.html\ HTTP/
RewriteRule ^(.*)\.html$ /$1 [R=301,L]
问题是现在它适用于 /subject1/subtopic1.html 中的任何内容,但对于位于我得到的目录位置的页面:
/subject1.html -->301 --> /subject1 -->/subject1/
是目录内容
【问题讨论】:
【参考方案1】:将您的第二条规则更改为:
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %DOCUMENT_ROOT/$1.html -f
RewriteRule ^(.+?)/?$ $1.html [L]
【讨论】:
以上是关于重定向规则以允许 html 页面存在于目录 url的主要内容,如果未能解决你的问题,请参考以下文章
IIS URL重写域更改301仅将某些页面和所有其他页面单独重定向到另一个URL