apache 关于 .htaccess 文件,我想向我的 .htaccess 文件添加多个条件

apache 关于 .htaccess 文件,我想向我的 .htaccess 文件添加多个条件

我需要帮助来设置我的 .htaccess,以便它能够在两种不同的条件下工作。

第一个条件是:

RewriteEngine on
RewriteCond %{request_filename} -f
RewriteRule ^(.*) $1 [L]
RewriteRule ^(([^/]*)+)(/([^/]{0,32})(/.+)?)?$  index.php?a=$1&q=$3    [L]

我想添加一个条件,将非 www 重写为 www

如何在我的网站上强制使用 www.?

我想通过 htaccess 强制 www,但我不知道该怎么做。

答案1

任何规范重定向都应该您现有的内部重写。因此,请尝试以下操作:

RewriteEngine On

# Canonical non-www to www redirect
RewriteCond %{HTTP_HOST} =example.com [NC]
RewriteRule (.*) http://www.example.com/$1 [R=301,L]

# Internal rewrites
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

RewriteRule ^([^/]+)(/([^/]{0,32})(/.+)?)?$ index.php?a=$1&q=$3 [L]

我还稍微整理了您现有的重写。如果您不想更改 URL,请-在替换中使用单个连字符 ( ),而不是重写为自身。诸如 (0 次或多次,至少 1 次) 之类的模式与(1 次或多次)([^/]*)+相同。[^/]+

相关内容