Чистые 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 /
обратите внимание, что мой сайт работает в корне домена.