Drupal 7 をインストールして使い始めたばかりで、指示に従ってクリーン URL を有効にしました。[クリーン URL テストを実行] ボタンをクリックしましたが、結果が返されませんでした。何かをロードしてから、ページを更新します。
なぜこれが起こっているのか、そして私に何ができるのか、誰にでも光を当てることができますか?
Drupal 7 をインストールして使い始めたばかりで、指示に従ってクリーン URL を有効にしました。[クリーン URL テストを実行] ボタンをクリックしましたが、結果が返されませんでした。何かをロードしてから、ページを更新します。
なぜこれが起こっているのか、そして私に何ができるのか、誰にでも光を当てることができますか?
場合によっては、クリーンアップされたURLページを開くことが失敗し、エラーが表示されないことがあります(システムの観点からは、エラーは表示されません)。URLを次の場所から手動で変更してみてください。
www.mydomain.com/?q=admin/config/search/clean-urls
に:
www.mydomain.com/admin/config/search/clean-urls
チェックボックスが表示されるかどうかを確認し、表示される場合は選択して保存します。
ファイル phpinfo.php を作成します。内容は次のとおり<?php phpinfo();?>
です。次に、ブラウザからロードします。テキスト「Loaded Modules」を見つけます。これには「mod_rewrite」が含まれている必要があります。いいえの場合は、Apache 構成で有効にします (有効にする方法を尋ねられるかもしれません)。
私の drupal7 インストールは、Ubuntu 12.04 を搭載した私の PC のフォルダー usr/share/drupal7 にあります。問題を解決した方法は、drupal7 フォルダーの .htaccess を次のように変更することでした。
#RewriteRule ^ index.php [L]
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
そして追加:
RewriteBase /drupal7
追加しないでくださいRewriteBase /drupal
。
これでテストは問題なく、すべて正常に動作します。
クリーンな URL を機能させるには、Apache で mod_rewrite を有効にする必要があります。
mod_rewrite が phpinfo にない場合は、インストールする必要があります。
sudo a2enmod rewrite
sudo apache2ctl -l
You need to replace the occurrence of AllowOverride none to AllowOverride all
このように変更します
<VirtualHost *:80>
ServerAdmin admin@localhost
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride all
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
そしてApacheを再起動します
sudo service apache2 restart
GoDaddyにDrupal 7.15を新規インストールした後、問題が発生しました。それらを機能させるために、.htaccessに次の変更を加える必要がありました...
# Pass all requests not referring directly to files in the filesystem to
# index.php. Clean URLs are handled in drupal_environment_initialize().
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
#RewriteRule ^ index.php [L]
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] #GoDaddy Hosting
その後、Clean Url Test は引き続き失敗しますが、Artonice による回答で参照されているように、Clean Urls は実際に機能します。
私も GoDaddy ホスティングでその問題を抱えていましたが、解決策は実際にはかなり単純であることがわかりました.
.htaccess の次の行のコメントを外した後、クリーン URL テストは期待どおりにパスしました。
# RewriteBase /
私のサイトはドメイン ルートで実行されていることに注意してください。