こんにちは私は私が構築した個人的なサイトにseoフレンドリーなURLのためのmod_rewriteスクリプトを持っています。このスクリプトは、サーバー上の実際のディレクトリである管理フォルダーにアクセスできないことに気付くまで、非常にうまく機能していました。最初の変更を行う前の.htacsessは次のようになります。
Options +SymLinksIfOwnerMatch
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteRule \.(css|jpe?g|gif|png|js)$ - [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?page=$1
RewriteRule ^(.*)/(.*)$ index.php?page=$1
そこで、スクリプトを変更して、次の2つのルールの2番目のセットを追加しました。
RewriteCond%{REQUEST_FILENAME}!-d RewriteCond%{REQUEST_FILENAME}!-f
最後のルールの直前なので、最初の4行のコードがないと次のようになります。
RewriteRule \.(css|jpe?g|gif|png|js)$ - [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?page=$1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/(.*)$ index.php?page=$1
これを実行すると、adminディレクトリにアクセスできましたが、コンテンツは第2レベルのリンクに表示されないため、最後のルールが無視されているように見えます。
誰かが私が間違っていることを理解するのを手伝ってくれるでしょうか。
ライアン・バウアー