独自のカスタム CMS を使用して、サーバー上のクリーンな URL に .htaccess スクリプトを使用しています。
# this is the initialization
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
# these are the rewrite conditions
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# and finally, the rewrite rules
RewriteRule ^([a-zA-Z0-9\-\_\ \+\-]+)/?$ /pages.php?which_page=$1 [L,QSA]
RewriteRule ^([a-zA-Z0-9\-\_\ \+\-]+)/([a-zA-Z0-9\-\_\ \+\-]+)/?$ /pages.php?which_page=$1&data1=$2 [L,QSA]
RewriteRule ^([a-zA-Z0-9\-\_\ \+\-]+)/([a-zA-Z0-9\-\_\ \+\-]+)/([a-zA-Z0-9\-\_\ \+\-]+)/?$ /pages.php?which_page=$1&data1=$2&data2=$3 [L,QSA]
RewriteRule ^([a-zA-Z0-9\-\_\ \+\-]+)/([a-zA-Z0-9\-\_\ \+\-]+)/([a-zA-Z0-9\-\_\ \+\-]+)/([a-zA-Z0-9\-\_\ \+\-]+)/?$ /pages.php?which_page=$1&data1=$2&data2=$3&data3=$4 [L,QSA]
RewriteRule ^([a-zA-Z0-9\-\_\ \+\-]+)/([a-zA-Z0-9\-\_\ \+\-]+)/([a-zA-Z0-9\-\_\ \+\-]+)/([a-zA-Z0-9\-\_\ \+\-]+)/([a-zA-Z0-9\-\_\ \+\-]+)/?$ /pages.php?which_page=$1&data1=$2&data2=$3&data3=$4&data4=$5 [L,QSA]
RewriteRule ^([a-zA-Z0-9\-\_\ \+\-]+)/([a-zA-Z0-9\-\_\ \+\-]+)/([a-zA-Z0-9\-\_\ \+\-]+)/([a-zA-Z0-9\-\_\ \+\-]+)/([a-zA-Z0-9\-\_\ \+\-]+)/([a-zA-Z0-9\-\_\ \+\-]+)/?$ /pages.php?which_page=$1&data1=$2&data2=$3&data3=$4&data4=$5&data5=$6 [L,QSA]
RewriteRule ^([a-zA-Z0-9\-\_\ \+\-]+)/([a-zA-Z0-9\-\_\ \+\-]+)/([a-zA-Z0-9\-\_\ \+\-]+)/([a-zA-Z0-9\-\_\ \+\-]+)/([a-zA-Z0-9\-\_\ \+\-]+)/([a-zA-Z0-9\-\_\ \+\-]+)/([a-zA-Z0-9\-\_\ \+\-]+)/?$ /pages.php?which_page=$1&data1=$2&data2=$3&data3=$4&data4=$5&data5=$6&data6=$7 [L,QSA]
これは、すべてのリクエストを CMS の pages.php スクリプトにリダイレクトするのに最適です。
問題は、まれに、サブディレクトリを追加したいクライアントがいて、そこにサブディレクトリを無制限に追加できることです。サブディレクトリはすべて、その中の index.html にリダイレクトする必要があります。この議論では、ユーザーがwww.mysite.com/main-dirにアクセスしたときに、このプライマリ サブディレクトリを main-dir にリダイレクトする必要があります。www.mysite.com/main-dir/index.html
クライアントが main-dir にさらにディレクトリを追加する場合、方向はその中の index.html にする必要があります。www.mysite.com/main-dir/some-dir/index.html
したがって、基本的に、main-dir とそのサブディレクトリのいずれかを通常の pages.php リダイレクトから除外し、それらがすべてそれらの中でリダイレクトされるようにする必要がindex.html
あります。
RewriteEngine off
サブディレクトリに .htaccess ファイルを追加するだけで、次のようなさまざまな条件とルールを追加するなど、これを達成するために多くのことを試しました。
RewriteCond %{REQUEST_URI} !^/collections/^
と
RewriteRule ^(collections)/$1 [L]
何も機能していません。
現在、Web ユーザーがwww.mysite.com/main-dir
アクセスすると、pages.php スクリプトにリダイレクトされ、除外されませんが、アクセスするwww.mysite.com/main-dir/index.html
と HTML ページにアクセスします。
任意の支援をいただければ幸いです。