重定向规则以允许 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

你如何允许 WKWebView 接受重定向 url

目录存在时htaccess重写url重定向

IIS URL重写域更改301仅将某些页面和所有其他页面单独重定向到另一个URL

如果在 django 的 urls.py 中找不到,则将任何 url 重定向到 404.html

IIS7 301 从 URL 列表重定向