4

私の .htaccess ファイルは次のようになります。

RewriteEngine On
RewriteRule ^([^/]*)$ index.php/?node=$1 [L]

cssファイルを次のように含めると:

<link href="sitewide.css" rel="stylesheet" type="text/css" />

うまくいきません。ジャバスクリプトも同様です。

4

4 に答える 4

7

私は、imgs、css、javascriptなどのすべての相対パスのベースリンクをハードコード化しない簡単なソリューションをどこでも探していました...

それで、ここで、<head>問題が発生しているページのタグの間にこれを追加します。

<base href='http://www.mydomain.com/'>

これにより、相対パスリンクがこのベースリンクで開始されます。そのような単純な。

タグは、ドキュメント内のすべての相対URLの<base>ベースURL/ターゲットを指定します。タグ<base>を要素内の最初の要素として<head>配置し、headセクションの他の要素が要素からの情報を使用するようにし<base>ます。

それはあなたのために働きましたか?

于 2012-11-21T12:19:37.927 に答える
3

ファイルやディレクトリが存在する場合など、存在しないパスのみを書き換えることを検討してください - 書き換えないでください。

Wordpress はこれを使用してパーマリンクを書き換えます。これはかなり良い例だと思います。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

ご覧のとおり、既存のファイル/ディレクトリを除外する書き換え条件があります。

于 2012-04-22T23:26:39.533 に答える
0

そのファイルは、 to を.htaccess含まないものをすべてリダイレクトしています。本当に必要なパスだけをキャッチするように書き直すことを検討してください。/index.php

Lまたは、「最後」 ( )として示されているルールを使用してファイルを開始することもできます。

RewriteRule ^/javascript.js$ $0 [L]

これにより、Apache はこの RewriteRule を評価し、その要求の他のすべてのルールを停止することになります。したがって、.jsまたは.cssファイルは適切に提供されますが、その.htaccessようなファイルごとに新しいエントリを作成する必要があります。これよりも最初の提案を強くお勧めします。

于 2012-04-22T23:25:09.060 に答える
0

これを試して:

RewriteEngine On   
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^([^/]*)$ index.php/?node=$1 [L]
于 2012-04-22T23:26:13.587 に答える