web-dev-qa-db-ja.com

クリーンURLが機能しないDrupal 7

Drupal 7をインストールして使用を開始し、指示に従ってクリーンURLをオンにしました。[クリーンURLテストを実行]ボタンをクリックしましたが、結果が返されませんでした。ロードされます。何かをアップしてからページを更新します。

なぜこれが起こっているのか、そして私に何ができるのかを誰かが明らかにすることができますか?

12
picardo

ファイルphpinfo.php、内容を作成します:<?php phpinfo();?>次に、ブラウザからロードします。 「ロードされたモジュール」というテキストを検索します。「mod_rewrite」が含まれている必要があります。いいえの場合は、Apache構成で有効にします(有効にするかどうかを尋ねることができます)。

10
Alexey Smirnoff

場合によっては、クリーンアップされたURLページを開くことが失敗し、エラーが表示されないことがあります(システムの観点からは、エラーは表示されません)。 URLを次の場所から手動で変更してみてください。

www.mydomain.com/?q=admin/config/search/clean-urls

に:

www.mydomain.com/admin/config/search/clean-urls

チェックボックスが表示されているかどうかを確認し、表示されている場合は選択して保存します。

21
m4rinos

apache構成ファイル(/etc/Apache2/Apache2.conf)には、次の2行が含まれている必要があります。そうでない場合は、それらを追加します。これにより、Apacheはフォルダ.htaccessの設定用に“/var/www/drupal”ファイルを探すようになります。

<Directory /var/www/drupal>
  AllowOverride All
</Directory>
AccessFileName .htaccess
6
Kshitiz Singh

私のdrupal7のインストールは、Ubuntu12.04を使用するPCのusr/share/drupal7フォルダーにあります。この問題を解決する方法は、drupal7フォルダーの.htaccessを次のように変更することでした。

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

そして追加:

RewriteBase /drupal7

RewriteBase /drupalを追加しないでください。

これでテストは問題なく、すべて正常に機能します。

5

クリーンな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
4
Akhilraj N S

新規インストール後に問題が発生しました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による回答で参照されているように実際に機能します。

2
Eddie

GoDaddyホスティングでもその問題が発生しましたが、解決策は実際にはかなり単純であることがわかりました。

.htaccessの次の行のコメントを解除した後、クリーンURLテストは期待どおりに合格しました。

# RewriteBase /

私のサイトはドメインルートで実行されていることに注意してください。

1
Zsolt Balla