.htaccess代码打破了网站?

时间:2017-11-07 20:08:43

标签: php apache .htaccess drupal

我尝试使用以下代码将新的.htaccess文件添加到Drupal站点的根目录:

# Redirect all users to access the site WITH the 'www.' prefix
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} !\.([a-z-]+\.[a-z]{2,6})$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

但现在我在每个不是主页的页面上都出现此错误。请帮忙!所以如果我去www.website.com/products,我会得到这个:

Not Found
The requested URL /products was not found on this server.

Apache/2.4.7 (Ubuntu) Server at www.website.com Port 443

这是“Not Found”与上面的.htaccess代码有关吗?

2 个答案:

答案 0 :(得分:0)

端口443通常用于HTTPS。处理这种情况的最佳方法是使用vhosts。使用vhost路由,您可以尝试类似:

<VirtualHost *:80>
    ServerName www.example.com
    Redirect "/" "https://www.example.com/"
</VirtualHost>

<VirtualHost *:443>
    ServerName www.example.com
    # ... SSL configuration goes here
</VirtualHost>

走上.htaccess路线,你可能想尝试这样的事情:

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com*
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]

答案 1 :(得分:0)

好的,所以我发现这里的问题是我上传了一个.htaccess文件并且没有看到那个已存在的文件,因为该文件是 隐藏 < / strong>在服务器上,所以我实际上不小心覆盖了那里错误的Drupal .htaccess文件。一旦我们恢复到原始df[!duplicated(unique(df[, 1:2])[, 1]), ] 文件并将此代码添加到其中,一切正常。