0

最近 CodeIgniter の作業を開始しましたが、.htaccess と base_url() 関数に問題があり、問題が発生しています。これが単なる初心者のエラーであり、迅速に修正されることを願っています!

ほとんどの場合、.htaccess を使用すると index.php が URL から削除されますが、これは驚くべきことですが、スタイルシートと js ファイルをテンプレートにリンクする際に問題が発生しています。

私が読んだ/見たすべてのチュートリアルでは、.htaccess が含まれていて、base_url() を設定してから "link_tag(href);" を使用しています。彼らの .css をリンクするには たとえば、スタイルシートを追加しようとしたとき、探したパスは次のとおりでした。

http://www.mysite.com/site/www.mysite.com/site/css/stylesheet.css

したがって、最初に考えたのは、 base_url() を削除して、 .htaccess がすべてを実行できるようにすることでしたが、機能しませんでした。.htaccess を使用すると、index.php がなくても、スタイルシートや JavaScript ファイルがリンクされていないサイトを作成できます。または、何らかのスタイリングを使用して、index.php を処理するサイトを作成できます。両方が同時に機能する方法があるに違いありませんか?

また、link_tag() を使用する代わりに修正を行いました。最初は正常に動作する通常のリンク タグをエコーアウトしました。

http://www.mysite.com/

しかし、ログインが正しくなく、リダイレクトしてログインビューを再度ロードすると、次の相対パスを使用するようになったため、スタイリングが消えます。

http://www.mysite.com/user/login

前もって感謝します!どんな助けでも大歓迎です。

4

2 に答える 2

1

試す

RewriteEngine on
RewriteCond $1 !^(css|js)
RewriteRule ^(.*)$ /index.php/$1 [L]

soは、asが codeigniter に渡されたwww.mysite.com/css/mycss.css場所で正常に取得されます。www.mysite.com/something

css ファイルを取得するには、次のbase_url()ようにします。base_url("css/mycss.css")"http://www.mysite.com/css/mycss.css"

于 2012-06-25T13:04:09.103 に答える
1

より良い .htaccess ルールセットは次のようになります。

#Removes access to the system folder by users.
#Additionally this will allow you to create a System.php controller,
#previously this would not have been possible.
#'system' can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

#When your application folder isn't in the system folder
#This snippet prevents user access to the application folder
#Submitted by: Fabdrol
#Rename 'application' to your applications folder name.
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

これにより、システムおよびアプリケーション フォルダーへのアクセスが禁止されますが、他のすべてのファイル (/js/*、/css/*、/img/* など) へのアクセスは許可されます。

于 2012-06-25T13:29:11.980 に答える