3

フォルダ構造:

/index/
/upload/
/something/

これらのフォルダーには .htaccess がありません (また、すべきではありません)。

http://site.com/somethingにアクセスすると、望ましくないhttp://site.com/something/url=somethingにリダイレクトされます。

RewriteEngine on

# RewriteBase /base/ #

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]

フォルダーの末尾に「/」を追加するための別の書き換え条件を追加すると、追加の (不要な) 要求が発生しますが、これも好ましくありません。

不要なリダイレクトなしでフォルダが直接フロント コントローラに送信されるようにルールを作成するにはどうすればよいですか?

4

2 に答える 2

0

解決策はあるでしょう。

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*[^/])$ $1/ [NC,L,R=301]

しかし、これにより追加のリダイレクトが行われます(最初は何か/へ、もう1つはindex.php?urlへ...)...最適ではありません。

適切な解決策は、何があってもリダイレクトを 1 つだけにすることです。

于 2013-04-25T09:11:31.827 に答える
0

既存のディレクトリを除外する条件を追加してみてください。

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
于 2013-04-25T08:58:47.147 に答える