1

よろしくお願いします。

したがって、次の .htaccess コードがあります。うまくいくようです。ただし、それは現存する最も肥大化した非効率的な作業でなければなりません。これを達成するためのより良い方法が必要です。

Options +FollowSymlinks
RewriteEngine On
RewriteBase /
DirectoryIndex index.php index.html site-down.php
RewriteCond %{HTTP_HOST} !^example\.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
RewriteCond %{REQUEST_URI} !\.(htm|html|php|jpg|jpeg|txt|png|gif|js|css)$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://example.com/$1/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/v1
RewriteRule ^(.*)$ v1/$1 [QSA,L]

RewriteCond %{REQUEST_FILENAME}index\.php -f
RewriteRule ^.*$ %0index.php [L]
RewriteCond %{REQUEST_FILENAME}index\.html -f
RewriteRule ^.*$ %0index.html [L]
RewriteCond %{REQUEST_FILENAME}site-down\.php -f
RewriteRule ^.*$ %0site-down.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}(index\.php|index\.html|site-down\.php) !-f
RewriteRule ^.*$ controller.php [QSA,L]

これが私が達成しようとしていることです。

  1. すべてのリクエストを非 www に書き換えます
  2. 要求どおりにファイルが存在するかどうかを確認します。そうでない場合は、
  3. フォルダ v1/+appended リクエストにファイルが存在するかどうかを確認します. 存在しない場合,
  4. フォルダー v1/+appended リクエストにインデックス ファイルが存在するかどうかを確認します. 存在しない場合,
  5. controller.php にリダイレクト

htaccess ファイルはリクエストごとに使用されるため、これをもう少し論理的/効率的にする必要があります。インデックス ファイルのチャンクを途中で追加した理由は、controller.php へのリダイレクトをチェックするときに、インデックス ファイルが存在するかどうかをチェックしていなかったからです。

何か案は?ありがとう!

4

0 に答える 0