web-dev-qa-db-ja.com

DrupalはURLを書き換えますが、CSS /テーマをロードできません

drupal 7でURL書き換えの問題があります

たとえばindex.php?q=categorie&categorie=laarscategorie/laars.htmlに書き換えようとしています

だから私はデフォルトをダウンロードしましたdrupal 7 .htaccessファイル https://code.google.com/p/drupalgooglecode/source/browse/trunk/.htaccess から

次に、セクションで

# Various rewrite rules.
<IfModule mod_rewrite.c>
</IfModule>

追加した:

RewriteRule ^categorie/([^/]*)\.html$ index.php?q=categorie&categorie=$1 [L]

デフォルトより上(私も以下を試しましたが、URLを書き換えませんでした):

RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

しかし、それは機能していないようです。書き換えルールを追加すると、サイトのレイアウトがすべて乱れる。 themes/cssがもうロードされていないかのように。 URLは希望どおりに書き換えられますが、drupalはテーマファイルの場所がわからないようです。この原因は何ですか?

ありがとう!ステース

更新:.htaccessのurl書き換えがdrupal clean-urlのモジュールと競合する可能性はありますか?読み込まれないテーマがあるため、何かが競合しているように感じます。わからない...

UPDATE2:また、hook_url_inbound_alterでカスタムモジュールを使用してみましたが、それも私には機能しません( https://stackoverflow.com/questions/17176589/drupal-hook-url-inbound-alter-not-altering- my-url )。その質問はstackoverflowにあります、何らかの理由で私は彼らのより速い解決策を得たいと思っていました。

2
Stephan Celis

多分私は何かが足りないのですが、.htaccessの書き換えは必要ありません。

「競合」とは、スタイルへのパスを書き換えることです。ソースを表示し、CSSなどに移動しようとするとどうなるかを確認します。

この効果を達成するには、クリーンなURLを有効にするだけで(私が何かを見落としている場合を除き)、index.php?q=が削除されます。

次に、.htmlを追加するには、admin/config/search/path/patternsに移動し(pathautoがインストールされている場合)、.htmlまたは[node:title]のどちらを使用していても、その後に[term:name]を追加します。

したがって、パターンは次のようになります。
[node:title].html
そして
[term:name].html

2
mediaashley

これは、サイトがhttp://www.example.com

RewriteCond %{QUERY_STRING} ^(q)=(categorie)&(categorie)=(.+)$ [NC]
RewriteRule ^$ http://www\.example\.com/%3/%4\.html${pages:%1¦NULL}? [L]

それが役に立てば幸い... :)

0
jerdiggity

テーマ/ cssがもうロードされていないかのように。

スタイルを読み込んでいますか? DevTools/FirebugのリソースをチェックしてURLリクエストを確認し、それが404を返さないことを確認します。不正なリクエストパスを知ることで、質問への回答が改善されます...

これは暗闇の中でのショットですが、静的スタイルが.infoで定義されていることと、動的スタイルがtemplate.phpのdrupal_get_path()を使用して呼び出されていることを確認してください

クリーンURL + PathAutoは間違いなく.html拡張子を追加する最も簡単なソリューションです この投稿 は、非常にうまく説明しています。

0
adam_bear