【发布时间】:2014-10-06 10:54:45
【问题描述】:
编辑:这个问题现在没有实际意义,因为整个网站都将使用 HTTPS 提供服务
我的.htaccess 导致重定向循环。
我需要所有三个部分都可以工作,每个部分的目的都在评论中。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Force HTTPS for /book unless dev or already there
RewriteCond %{HTTP_HOST} !^dev\.
RewriteCond %{HTTPS} !^on$
RewriteRule ^book https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Force www prefix unless dev or already there
RewriteCond %{HTTP_HOST} !^dev\.
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ %{REQUEST_PROTOCOL}://www.%{HTTP_HOST}/$1 [L,R=301]
# Concrete5 pretty URLs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule . index.php [L]
</IfModule>
我必须在实时服务器上工作,因为证书只在那里有效(需要www.)。
我已经尝试了上述的许多变体,但我很困惑,所以我希望对此有新的看法会有所帮助,非常感谢提前。
【问题讨论】:
标签: .htaccess mod-rewrite redirect https concrete5