1

我正在开发一个仅包含根文件夹 (/public_html) 下的 .html 文件的静态网站

我试图在这里强制执行 URL 重写规则。

所有网址都必须像: http: //www.domain.com/file #rule 1

其他形式的写作必须被拒绝并被视为错误,例如

http://www.domain.com/file.html #rule 2

http://www.domain.com/file/ # 规则 3

你能帮我处理这段代码吗

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^([^\.]+)$ $1.html [NC,L]

我在规则 #1 和 #3 上成功了 请在规则 #2 上帮助我,所以当我的网站的访问者键入 url #2 时,他将被拒绝并且永远不知道 ithis 是一个 html 文件

4

1 回答 1

0

这是您可以使用的代码:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.html\s [NC]
RewriteRule ^ /%1 [R=302,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.html -f
RewriteRule ^(.+?)/?$ /$1.html [L]

确认它工作正常后,替换R=302R=301. R=301在测试你的 mod_rewrite 规则时避免使用(永久重定向)。

于 2013-06-11T13:20:06.900 回答