0
domain.comに戻るすべてのトラフィックをdomain.comにリダイレクトする.htaccess書き換えルールを書き込もうとしています。全体のフォルダへのアクセスをブロックし、代わりにindex.phpにルーティング
私はこれまでのところ、これを書いている:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1/ [L]
しかし、私が行けば、期待どおりに動作していない:
domain.com/system/inexistent_file
それが動作します。しかし私が行く場合:
domain.com/system/existing_file.php
これは、index.phpの内容を表示するのではなく、指定されたファイルを開きます。
これはどのように修正する必要がありますか?
Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine on
# Match against the host, if you wish
#RewriteCond %{HTTP_HOST} ^domain\.com$
RewriteRule system/(.*) /index.php?/$1 [L,R]
</IfModule>
それが存在し、存在しないファイルの両方で動作します:
それはトリックでしたが、RewriteCondがうまくいかなかったのはなぜですか? –
まず、 'RewriteRule'自体が'%{REQUEST_URI} 'とマッチするので、余分な' RewriteCond'は必要ありません。次に、すべてのもの( '。*')を 'system /'の後のセグメントではなくindex.phpファイルにマッピングしていました。 – sepehr
もうひとつ注意してください。おそらくhtaccessファイルに 'RewriteCond%{REQUEST_FILENAME}!-f'の行に沿って何かがあるでしょう。右? – sepehr