0

私が求めているものの簡単な例を挙げると、これが私が望むものです:

example.com/folder/about/  

次の場所にあるページが表示されます。

example.com/folder/about.html

現在、私の .htaccess ファイルは次のようになっています。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^folder/(.*)$ folder/$1\.html [NC,R=301,L]

私が行ったときに動作します:

example.com/folder/about

しかし、私が行くときではありません:

example.com/folder/about/

ロードしようとするもの:

example.com/folder/about.html/

ファイルやディレクトリではありません。

4

1 に答える 1

0

%{REQUEST_FILENAME}variable を 2 回目に使用して、ファイル名を取得できます。

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.html -f
#new line
RewriteCond %{REQUEST_FILENAME}.html .*/(.*)/?
RewriteRule ^folder/ folder/%1 [NC,R=301,L]

アップデート

これを前のブロックの前に置く

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^folder/(.*)/ folder/$1 [NC,R=301,L]
于 2013-07-31T12:22:24.017 に答える