私はmod-rewrite自分の.htaccessファイルで以下を使用しています:
RewriteRule ^$ pages/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ pages/$1 [L]
/pages/呼び出されたサブディレクトリがURLに表示されないようにすることを目的としています。
したがって、この: http://mysite.com/pages/home.html
このようになります: http://mysite.com/home.html
それは機能しますが、いくつかの意図しない結果があります。
上記で投稿したコードの直接の結果として、.htaccess404ルーティングがまったく機能しなくなりました。404エラーページをトリガーする必要があるものはすべて、代わりにを生成してい500 Server Errorます。
直し方?
編集:
上記のように、カスタム404ページがで定義されている.htaccessかどうかは関係ありません。それがない場合、またはエラーページへのパスが正しくない場合でも、サーバーはデフォルトの404ページにルーティングし、を指定しないでください500 Server Error。
確かに、404エラーの通常のルーティングを中断せずにURLのセクションを抑制する標準的な方法が必要です。 私のオンライン調査から、上記の私の方法は一般的に404ルーティングを壊しているようですが、これまでのところ、適切な解決策は見当たりません。(これはWordpressのインストールではなく、静的なHTMLコンテンツです)
編集2:
URLから1つのディレクトリのみを抑制したいので、、、、、、、など、ポイント/pages/できない兄弟である他のファイルやディレクトリもあるとは言いませんでした。/pages//graphics//includes//css//cgi-bin/robots.txtfavicon.ico
たぶん、これはすべて無益な運動であるか、それが価値があるよりも多くの問題であるか?
どちらの方法でも決定的な答えを探しています。