2017-03-07 35 views
0

htaccessで再びスタックします。特定のサブディレクトリに404ページを追加するにはどうすればよいですか? サブディレクトリ(およびステージング内のディレクトリ)にのみ影響するが、ルートまたは他のサブディレクトリには影響しません。私の場合、404ページは "ステージング"htaccess 404特定のサブディレクトリのみのページ(静的なHTMLページ)

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 

上記のコードを使用して(および他の多くの)内部サーバーエラーで結果:

私の.htaccessディレクトリ「ステージング」用のファイルにあるコードをステージング

http://example.com/

+0

エラーログには何が表示されますか? – starkeen

+0

私の500 Internal Server Errorに関して何も見つかりません。少なくともルートに置かれたエラーログにはありません。 – Alex

+0

残念ながら、それは何の違いもありません - まだ500の内部サーバーエラーを取得します。 – Alex

答えて

0

更新#1私の最初の質問に。特定のサブディレクトリに404ページが見つかりませんを追加するために提供されているコード/答えが働く一般に は、:

ErrorDocument 404 /staging/404.html 

全体の.htaccessファイルで何らかのエラーがなければならないので、それはまだ動作しない理由は、コードに関連する設定.html拡張子および/またはをフォルダのページにリダイレクトします。

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の設定をさらに調査します。以下の.htaccessのスクリプトを使用して

アップデート#2 はHostgatorのcPanelのグリッド上の特定のサブディレクトリ内の、拡張子が.htmlを削除したディレクトリ内の特定のページにページをリダイレクトし、基本的に取り組んで404ページが見つかりませんすることができますホスティング(Apache)。

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問題:

関連する問題