web-dev-qa-db-ja.com

.htaccessの書き換えが機能しない

/pageのページにカスタムモジュールがあり、$_GET['id']がそれを実行することを期待しています。

空のWebサイトで機能する.htaccess書き換えルールを次に示します

RewriteRule category+/(.*)$ page.php?id=$1 [L]

Drupal 8の場合、行は

RewriteRule category+/(.*)$ page?id=$1 [L]

/category/5にアクセスすると404エラーが表示されます

1
Den

ページがサーバー上の有効なパスではないため、書き換えルールは機能しません。デフォルトではDrupalはすべてのリクエストをindex.phpに書き換えます。ページに書き換えると、Apacheはサーバー上のパスページを期待します。

これは、Drupalで実行しようとしていることを達成するための適切な方法ではありません。しかし、あなたはあなたがしようとしていることを以下で達成することができます

RewriteRule category+/(.*)$ page?id=$1 [R=301,L]

これは、category/5をpage?id = 5にリダイレクトし、$ _ GET ['id']で5を取得します

これらもチェックしてください

https://www.drupal.org/docs/user_guide/en/content-paths.html

パスからクエリパラメータを取得するにはどうすればよいですか?

2
anoopjohn