Drupal 7をインストールして使用を開始し、指示に従ってクリーンURLをオンにしました。[クリーンURLテストを実行]ボタンをクリックしましたが、結果が返されませんでした。ロードされます。何かをアップしてからページを更新します。
なぜこれが起こっているのか、そして私に何ができるのかを誰かが明らかにすることができますか?
ファイルphpinfo.php、内容を作成します:<?php phpinfo();?>
次に、ブラウザからロードします。 「ロードされたモジュール」というテキストを検索します。「mod_rewrite」が含まれている必要があります。いいえの場合は、Apache構成で有効にします(有効にするかどうかを尋ねることができます)。
場合によっては、クリーンアップされたURLページを開くことが失敗し、エラーが表示されないことがあります(システムの観点からは、エラーは表示されません)。 URLを次の場所から手動で変更してみてください。
www.mydomain.com/?q=admin/config/search/clean-urls
に:
www.mydomain.com/admin/config/search/clean-urls
チェックボックスが表示されているかどうかを確認し、表示されている場合は選択して保存します。
apache構成ファイル(/etc/Apache2/Apache2.conf
)には、次の2行が含まれている必要があります。そうでない場合は、それらを追加します。これにより、Apacheはフォルダ.htaccess
の設定用に“/var/www/drupal”
ファイルを探すようになります。
<Directory /var/www/drupal>
AllowOverride All
</Directory>
AccessFileName .htaccess
私のdrupal7のインストールは、Ubuntu12.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
新規インストール後に問題が発生しましたDrupal 7.15 on GoDaddy。それらを機能させるために、.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は引き続き失敗しますが、Clean Urlsは、artoniceによる回答で参照されているように実際に機能します。
GoDaddyホスティングでもその問題が発生しましたが、解決策は実際にはかなり単純であることがわかりました。
.htaccessの次の行のコメントを解除した後、クリーンURLテストは期待どおりに合格しました。
# RewriteBase /
私のサイトはドメインルートで実行されていることに注意してください。