0

抱歉,如果这对某些人来说似乎很简单。

过去,我使用互联网上的那段代码设置了 301 重定向:

Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]

但是,对于这个特定的项目,有些事情让我不确定。

1)我正在使用https,所以现在有四个CName((CName)是正确的术语吗?) https://example.com https://www.example.com http://example.com http:// /www.example.com

2) 我正在使用需要 .htaccess 文件的 CMS,以便在运行网站时搜索 CSS 和其他信息。因此,作为一个技术含量较低的人,我担心摆弄 .htaccess 文件(当此文件丢失之前,该文件因一个单独的问题而死,该网站无法正常运行)

问题:1)我将重定向放置在 .htaccess 文件的哪个位置是否重要?文件的开始/结束?2)我将如何更改上面的代码段以考虑到 https?

这是 .htaccess 代码

# Turn on URL rewriting only when mod rewrite is turn on

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Installation directory
    RewriteBase /

    # Protect application and system files from being viewed
    RewriteRule ^(application|modules|system|tests|sql) - [F,L]

    # Allow any files or directories that exist to be displayed directly
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    # Rewrite all other URLs to index.php/URL
    RewriteRule .* index.php?kohana_uri=$0 [L,QSA]
</IfModule>

# Protect the htaccess from being viewed
<Files .htaccess>
    order allow,deny
    deny from all
</Files>

# Don't show directory listings for URLs which map to a directory.
Options -Indexes

#Follow symlinks
Options +FollowSymlinks
4

1 回答 1

1

要将所有请求重定向到http://example.com,您可以在规则前面加上

RewriteCond %{HTTP_HOST} ^www\.example\.com$ [OR]
RewriteCond %{HTTPS} =on
RewriteRule ^.*$ http://example.com/$0 [R,L]

这将重定向所有请求,这些请求带有 HTTPSwww.example.com或两者兼有。

当一切按预期工作时,您可以更改RR=301.

永远不要在启用的情况下进行测试,有关详细信息301,请参阅此答案提示调试 .htaccess 重写规则

于 2013-04-13T13:10:04.527 回答