2

干净的 URL 测试失败。它在我的本地计算机上正常工作,当我将它上传到服务器时,我收到了这条消息,我无法启用干净的 url。我应该怎么做才能启用它?我也上传了htaccess。

4

3 回答 3

2

您需要确认在服务器上满足许多要求。在确认 Apache 允许您的本地 .htaccess 配置覆盖后(根据 Ayesh 的评论),我首先检查 info.php 以查看是否加载了 mod_rewrite。

确保在完成检查后删除 info.php,因为您不应该在生产服务器上使用它。

于 2012-10-06T21:28:08.213 回答
2

看看Configure clean URLs,假设您使用的是 apache2

  1. 在 apache 中启用 mod-rewrite

    sudo a2enmod rewrite

  2. vi /etc/apache2/sites-enabled/000-default,将 AllowOverride 从 None 更改为 All

<Directory /var/www/>
   Options Indexes FollowSymLinks MultiViews
   AllowOverride All
   Order allow,deny
   allow from all
</Directory>
  1. vi httpd.conf,添加这个
<Directory /var/www/>
      RewriteEngine on
      RewriteBase /
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</Directory>

2.重启apache

sudo service apache2 restart
于 2013-11-08T06:15:02.230 回答
0

如果您的整个站点受密码保护(通过 cpanel/.htaccess),那么测试将不会通过。这可能不是解决方案,但值得检查。

我通过在 .htaccess 文件中注释掉以下行来禁用密码保护。

AuthType Basic
AuthName "public_html"
AuthUserFile "/home/********/.htpasswds/public_html/passwd"
require valid-user

再次运行测试,如果通过,请勾选该框,然后确保取消注释先前注释的行。

于 2013-09-05T14:28:29.963 回答