0

私はcodeigniterを使用しています.htaccessファイルとその内容を作成して、URLからindex.phpを削除しようとしました:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

この方法は、xamppサーバーで機能します。しかし、サイトをアップロードすると、残念ながら問題が発生しました。

files というフォルダーがあり、その内容はサブフォルダーです: images、css、js、swf、upload。これらのフォルダーのすべてのファイルは表示できず、ブラウザーはファイルが見つからないと言いました。

助けてください。

4

5 に答える 5

2

それらも必ず除外してください。

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt|css|swf|upload)
RewriteRule ^(.*)$ /index.php/$1 [L]
于 2012-04-10T13:41:11.923 に答える
2

これは私の .htaccess ファイルです。私の理解では、アクセスが試行されたが存在しないファイルまたはディレクトリは、Codeigniter に転送されます。

存在するものはすべて正常に機能し、個別の除外は必要ありません。これにより、このファイルを編集する必要がないため、新しいディレクトリまたはフォルダーを追加するたびに時間と手間が節約されます。

RewriteEngine on
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]

私たちにとってはうまくいきますが、私の理解は間違っているかもしれません。それが役に立てば幸い

于 2012-04-10T14:17:20.493 に答える
1

これが私の .htaccess ファイルです - これはあなたのために働くはずです:

Options -Indexes
Options +FollowSymLinks

# Set the default file for indexes
DirectoryIndex index.php

<IfModule mod_rewrite.c>

    # activate URL rewriting
    RewriteEngine on

    # do not rewrite links to the documentation, assets and public files
    RewriteCond $1 !^(files|css|js|swfimages|assets|uploads|captcha)

    # do not rewrite for php files in the document root, robots.txt or the maintenance page
    RewriteCond $1 !^([^\..]+\.php|robots\.txt|crossdomain\.xml|maintenance\.html)

    # but rewrite everything else
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    ErrorDocument 404 index.php
</IfModule>  
于 2012-04-10T13:58:42.780 に答える
1

あなたの問題を解決すると思うこれを試してみてください..

RewriteEngine on
RewriteCond $1 !^(index\.php|robots\.txt|files\/images|files\/css|files\/js|files\/swf|files\/upload)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

これらのディレクトリを index.php に渡さないようにサーバーに指示する必要があり、これに対して機能する行は次のとおりです。

RewriteCond $1 !^(index\.php|robots\.txt|files\/images|files\/css|files\/js|files\/swf|files\/upload)
于 2012-04-10T14:25:58.857 に答える
1

ありがとうございました。これはうまくいきました:

RewriteEngine on
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]

別の Web サイトと次の index.php があります。files というフォルダーがあります。この 1 つのコンテンツには、フォルダーのすべての名前とサブディレクトリの名前を入れる必要がありますか?

于 2012-04-11T16:26:18.213 に答える