再次使用htaccess卡住了。如何将404页面添加到特定子目录?
在我的情况下,404页面应仅影响“登台”子目录(以及登台中的目录),但不影响根或放在root中的任何其他子目录。
我的.htaccess文件中用于目录“staging”的代码:
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ $1.html [L]
Options -Indexes -MultiViews
RewriteEngine on
RewriteRule ^arbeiten/$ /staging/arbeiten/alle [R=301,L]
RewriteRule ^journal/$ /staging/journal/journal-alle [R=301,L]
ErrorDocument 404 /staging/404.html
使用上面的代码(和许多其他代码)会导致内部服务器错误。
答案 0 :(得分:0)
更新#1 到我的初始问题。 通常,将404未找到的页面添加到特定子目录所提供的代码/答案有效:
ErrorDocument 404 /staging/404.html
它仍然不起作用的原因是因为与代码删除.html 扩展名相关的整体.htaccess设置中必定存在一些错误,并且/或重定向到页面中文件夹。
Options -Indexes -MultiViews
RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ $1.html [L]
RewriteRule ^arbeiten/$ /staging/arbeiten/alle [R=301,L]
RewriteRule ^journal/$ /staging/journal/journal-alle [R=301,L]
ErrorDocument 404 /at/404.html
我将继续进一步调查我的.htaccess中的设置。
更新#2 使用下面的.htaccess脚本可以删除.html扩展名,将页面重定向到目录中的特定页面,基本上是Hostgator cPanel网格托管(apache)上特定子目录中的404找不到页面。
Options -Indexes -MultiViews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule !.*\.html$ %{REQUEST_FILENAME}.html [L]
RewriteRule ^arbeiten/$ /staging/arbeiten/alle [R=301,L]
RewriteRule ^journal/$ /staging/journal/journal-alle [R=301,L]
ErrorDocument 404 http://www.example.com/staging/404
剩余404问题: