web-dev-qa-db-ja.com

書き換えURLが機能しない

Drupal 6では、次のコードスニペットを.htaccessファイルで使用して、存在しないURLから情報を抽出し、それをGETフォームの既存のURLに渡しました。ただし、そうではありません。 t Drupal 7のインストールでURLを書き換え、URLにアクセスすると、書き換えが必要なページが表示されるだけです!すべてのキャッシュをクリアし、別のブラウザーを試しました。

# Custom Rewrite  ScriptOptions +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteRule ^home/code/([^/]+) home/software?code=$1 [L,NC,QSA]

デフォルトのハンドラーが設定された直後にコードを配置しました。

このコードが機能しない理由を誰かに教えてもらえますか? Drupal 7で別の方法でこれを行う必要がありますか?

更新:このコードをDrupal 6-で動作させるためにStackoverflowで質問した質問を参照してください https://stackoverflow.com/questions/10765799/rewrite-a-url- to-include-get-data-with-drupal

3
Andy

「クリーンURL」の処理は、Apache RewriteRuleに影響する方法でDrupal 6からDrupal 7に変更されました。

私がhome/software?code=$1を典型的なDrupalのURLとして認識していないので、それがあなたを噛んだのかどうかはわかりません。しかし、私はDrupal 7で「クリーンでない」URLに書き換える必要があることを発見しました。

たとえば、以下はDrupal 6では機能しますが、Drupal 7では機能しません。

RewriteRule ^home/code/([^/]+) home/software/node?code=$1

Drupal 7では、クリーンなURLを有効にしている場合でも、クリーンなURLの宛先にnotを書き換える必要があります。以下はDrupal 7で機能します。

RewriteRule ^home/code/([^/]+) ?q=home/software/node/&code=$1
5
Free Radical

とてもシンプル

  1. Drupa7フォルダー(プロジェクトフォルダー。www/ drupal_project /またはpublic_html/drupal_project /にある場合があります)の.htaccessファイルに移動します。

  2. .htaccessは隠しファイルです。したがって、このディレクトリ構造www/your_project /(またはpublic_html/your_project /)に移動し、ctrl + hを押します。

  3. .htaccessファイルを含むすべての隠しファイルを取得します。

  4. .htaccessファイルで、行番号106に移動

  5. RewriteBase/drupalはこの行のコメントを外します。 drupalをプロジェクトフォルダーに置き換えます。

  6. 管理者でない場合、またはアカウントを持っていて、そのアカウントから作業している場合は、次のように指定します#RewriteBase /〜username/your_project_folder

  7. ファイルを保存します

  8. このページのadmin/config/search/clean-urlsに移動します。

  9. すべて問題なければ、[クリーンなURLを有効にする]チェックボックスが表示されます。

  10. それを有効にすると、サイトのURLがクリーンになります。

0