0

ウェブサイトにたくさんの htaccess ルールを設定しています。

RewriteEngine On
RewriteBase /
RewriteRule ^google73947f9bfca52abe.html$    google73947f9bfca52abe.html [L]
RewriteRule ^page\/(.*)$ index.php?title=page&r=$1 [L]
RewriteRule ^media\/(.*)$ index.php?title=page&r=$1 [L]

RewriteRule ^admin/$    admin/php [L]
RewriteRule ^index\.html$    index\.php [L]
RewriteRule ^crons/$    crons/ [L]

#I did this to forward request to directory    
RewriteRule ^sites/$    sites/ [L]

#This  is the rule creating problem
#RewriteRule ^sites/([^.]+)$    sites/$1 [L]


RewriteRule ^([^.]+)\.html$   /index.php?title=$1
RewriteRule ^(.*)\.htm       index\.php\?action=$1 [L]RewriteRule ^([^.]+)$   /index.php?title=$1

site.com/sitesディレクトリに移動するように構成されているため、ディレクトリに移動するのではなく、で始まるすべてのルールをオーバーライドしたいと考えてindex.phpいます。

site.com/sitesサイトに行くたびに移動しsite.com/site/?title=sitesますが、フォルダーとして参照することはできますが、html ファイルを開くと、test.html以前のディレクトリの index.php に直接移動するとします。

自由に直接閲覧できるルールの書き方は?

4

2 に答える 2

0

L フラグの代わりに END フラグを使用すると、書き換えルールが完全に終了します。

于 2013-07-02T02:06:59.337 に答える
0

行が検出されたときにすべてのルールを省略するように構成する必要がありますsites

これがあなたの解決策です:

RewriteEngine On
RewriteRule ^(sites) - [L]

#Rest of your rules
于 2013-07-02T02:20:16.847 に答える