我刚刚安装并开始使用Drupal 7,我按照说明启用了Clean Urls。我点击了“运行清洁URL测试”按钮,但无法返回任何结果。它会加载某些内容然后刷新页面。
任何人都可以阐明为什么会发生这种情况以及我能做些什么吗?
答案 0 :(得分:21)
有时以某种方式打开已清理的URL页面会失败并且不会显示错误(因为我从系统的角度来看没有错误)。尝试从以下位置手动更改网址:
www.mydomain.com/?q=admin/config/search/clean-urls
为:
www.mydomain.com/admin/config/search/clean-urls
看看它是否显示复选框,选择它并保存。
答案 1 :(得分:10)
创建文件phpinfo.php,内容:<?php phpinfo();?>
然后通过浏览器加载它。找到文本'Loaded Modules',它应该包含'mod_rewrite'。如果不是,请在您的apache配置中启用它(您可能会问如果是这样)。
答案 2 :(得分:6)
您的apache配置文件(/etc/apache2/apache2.conf
)必须包含以下2行。如果没有,那么添加它们。这告诉apache在文件夹.htaccess
“/var/www/drupal”
文件
<Directory /var/www/drupal>
AllowOverride All
</Directory>
AccessFileName .htaccess
答案 3 :(得分:5)
我的drupal7安装在我的电脑上,Ubuntu 12.04,在usr / share / drupal7文件夹中。 我解决问题的方法是在drupal7文件夹中的.htaccess中进行以下更改:
#RewriteRule ^ index.php [L]
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
并添加:
RewriteBase /drupal7
不要添加RewriteBase /drupal
。
现在测试还可以,一切正常。
答案 4 :(得分:4)
你必须在apache中启用mod_rewrite才能使干净的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
答案 5 :(得分:2)
在 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测试仍然失败,但Clean Urls实际上在artonice的回答中引用。
答案 6 :(得分:1)
我在GoDaddy托管中也遇到了这个问题,但实际上解决方案很简单。
在.htaccess中取消注释以下行后,干净的URL测试按预期传递:
# RewriteBase /
请注意,我的网站是在域根目录下运行的。