2

次のような書き換えルールがあります。

RewriteRule ^([a-zA-Z0-9\-]+)\/([a-zA-Z0-9\-]+)/?$ /index.php?name=$1&artname=$2


次のような存在するディレクトリ構造にアクセスしようとすると/pics/vikings、ブラウザの URL が に書き換えられ/pics/vikings/?name=pics&artname=vikingsます。/しかし、これは、URLに最後を含めない場合にのみ発生します。したがって/pics/vikings/、実際の URL は公開されません。


次のような既存のディレクトリにルールを追加しようとしました。

RewriteRule ^pics\/vikings/?$ /index.php


また、ディレクトリが存在する場合に htaccess で URL を書き換えるDirectorySlash Offで提案されているように追加しようとしました

編集:
私の .htaccess ファイル:

RewriteEngine On
RewriteRule ^([a-zA-Z0-9\-]+)\/([a-zA-Z0-9\-]+)/?$ /index.php?name=$1&artname=$2

Options All -Indexes

ErrorDocument 403 /
ErrorDocument 404 /
ErrorDocument 405 /
ErrorDocument 500 /
4

2 に答える 2

1

ディレクトリの場合は除外する必要があります。念のため、既存のファイルの場合も除外します (オプション)。

RewriteCond   %{REQUEST_FILENAME}    !-d
RewriteCond   %{REQUEST_FILENAME}    !-f
RewriteRule   ^([a-zA-Z0-9\-]+)\/([a-zA-Z0-9\-]+)/?$ /index.php?name=$1&artname=$2
于 2013-08-16T15:08:30.980 に答える
1

以下の行を .htaccess コードに追加する必要があります

Options -Indexes
于 2013-08-16T14:53:58.640 に答える