1

.html を使用せず、末尾にスラッシュを追加せずにファイルにアクセスできるように、書き直そうとしています。使用されているコードは次のとおりです。

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.*?)/?$
RewriteCond %{DOCUMENT_ROOT}/%1.html -f
RewriteRule ^(.*?)/?$ $1.html

しかし、私がこれを持っているサーバー上の私のファイル構造については:

/public_html
          ..
          /beginners
           beginners.html

/beginners フォルダー内には、他のファイルがあります。

          /beginners/page1.html

私はこのように動作するように書き直す必要があります:

ユーザーが url を入力した場合: website.com/beginners- サーバーはファイルの内容をbeginners.html返しますが、現在はディレクトリの内容を返します/beginners。したがって、サーバーが存在するかどうかを最初に確認する必要があります。beginners.html存在する場合は、サーバーはbeginners.htmlディレクトリを提供しません/beginners

ユーザーが URL にアクセスするwebsite.com/beginners/page1と、サーバーは最初 page1.htmlにフォルダの初心者に存在するかどうかを確認し、ファイルが見つかった場合はファイルpage1.htmlの内容を提供しますpage1.html

これはどのように行うことができますか?

4

1 に答える 1

4

これを行う .htaccess は次のとおりです。

Options +FollowSymLinks -MultiViews -Indexes
DirectorySlash Off
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^(.*?)/?$
RewriteCond %{DOCUMENT_ROOT}/%1.html -f
RewriteRule ^(.*?)/?$ $1.html
于 2013-09-28T10:44:24.800 に答える