0

我已经在我的网站上工作了一段时间,最近我遇到了错误,如果我到达一个带有 / 的 URL,例如一个通常会转发的目录http://parabolah.cf/documentation/你到另一个页面没有或后面有斜线的页面http://parabolah.cf/index/这只是打破了这些错误与我当前的 .htaccess 代码:

ErrorDocument 404 /404
ErrorDocument 500 /500
ErrorDocument 206 /206
ErrorDocument 401 /401
ErrorDocument 403 /403
ErrorDocument 408 /408
ErrorDocument 503 /503
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.htm -f 
RewriteRule ^(.*)$ $1.htm
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^documentation$ http://parabolah.cf/documentation/docmain$1[R=301,L]
RewriteRule ^documentation/mi1$ http://parabolah.cf/documentation/mi1/main$1 [R=301,L]
RewriteRule ^documentation/char$ http://parabolah.cf/documentation/char/main$1 [R=301,L]
RewriteRule ^nbtt$ http://parabolah.cf/nbtt/nbtt$1 [R=301,L]

我知道我可以对目录也只有一个 / 重写规则,但就 parabolah.cf/index/ 重写到 /index/.htm 我一无所知。另外,从页面中不存在的目录中,如何显示 404 页面类似于 parabolah.cf/index/hi ?

谢谢你的帮助!

4

1 回答 1

0

您需要更改附加.htm扩展的规则:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.htm -f 
RewriteRule ^(.*)$ $1.htm

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

以便尾部斜杠不包含在分组中。

您可能还需要确保Options -Multiviews关闭多视图<base href="/" />

于 2015-02-18T22:04:05.930 回答