我有一个网站,我在其中使用 SSI 将一些内容添加到首页。但是,我想向用户显示一个以.html
. 我已经通过 a.htaccess
和mod_rewrite
重定向实现了这一点。
RewriteRule ^index\.html$ index.shtml [PT,L]
此外,我正在使用另一个指向此 URL 的重定向来使用 JavaScript ( example.html
to index.html#example.html
) 在内部加载页面的内容,条件是不重定向index.html
。
现在,我想制作.shtml
页面403 Forbidden
。这也很容易:
RewriteRule ^index\.shtml - [F]
但是,现在index.html
也被禁止了。
我尝试添加L
到.html
-to-.shtml
规则,但这没有帮助。如何解决这个问题?
编辑:这是我的完整.htaccess
文件,其中包含 anubhava 建议的内容。
ErrorDocument 404 /subdir/notfound.html
ErrorDocument 500 /subdir/internalerror.html
RewriteEngine on
RewriteCond $1 !^(index\.html|notfound\.html|internalerror\.html)(#.*)?$
RewriteRule ^([^/]*\.html)$ /subdir/index.html#$1 [R=302,NE]
RewriteRule ^index\.html$ index.shtml [PT,L]
RewriteCond %{THE_REQUEST} index\.shtml
RewriteRule ^index\.shtml - [F]
还有我的目录结构:
/public_html
|
+-- subdir
|
+-- .htaccess
|
+-- index.shtml
|
+-- notfound.html
|
+-- internalerror.html
|
+-- style.css
|
+-- script.js
|
+-- ajax-pages
|
+-- index.html
|
+-- foo.html
|
+-- bar.html