Чистые URL-адреса не работают в Drupal 7 [закрыто]

Я только что установил и начал использовать Drupal 7, и я следовал инструкциям, чтобы включить чистые URL-адреса. Я нажал кнопку" запустить тест чистого URL", но он не вернул никаких результатов. Он загружает что-то, а затем обновляет страницу.

может кто-нибудь пролить свет на то, почему это происходит и что я могу сделать?

7 ответов


создать файл 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 находится на моем ПК с Ubuntu 12.04, в папке usr/share/drupal7. Я решил эту проблему следующим образом .htaccess в моей папке drupal7:

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

и добавить:

RewriteBase /drupal7

не добавлять RewriteBase /drupal.

Теперь тест в порядке, и все работает хорошо.


вы должны включить mod_rewrite в Apache, чтобы сделать чистые URL-адреса работы

Если 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= [L,QSA] #GoDaddy Hosting

после этого тест Clean Url все еще терпит неудачу, но чистые URL-адреса фактически работают, как указано в ответе artonice.


У меня также была эта проблема на хостинге GoDaddy, но решение оказалось довольно простым.

после раскомментирования следующей строки .htaccess, тест чистого URL прошел, как ожидалось:

# RewriteBase /

обратите внимание, что мой сайт работает в корне домена.