【发布时间】:2014-10-06 14:38:10
【问题描述】:
我最近设置了一个带有 SSL 证书的域,我想通过 https 而不是 http 访问整个站点。
我目前正在使用 RewriteEngine 和一个名为 page.php 的 php 脚本来处理 URL 参数,以便将正确的页面内容包含在 SEO 友好的 URL 中,如下所示。
www.example.com/page.php?venue=someplace&artist=singer
会变成:
www.example.com/someplace/singer
我的.htaccess 文件包含以下内容
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ page.php?venue=$1&artist=$2&%{QUERY_STRING} [L]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ page.php?venue=$1&artist=$2&%{QUERY_STRING} [L]
RewriteRule ^([a-zA-Z0-9_-]+)/$ page.php?venue=$1&%{QUERY_STRING} [L]
RewriteRule ^([a-zA-Z0-9_-]+)$ page.php?venue=$1&%{QUERY_STRING} [L]
通过 https 访问该站点时,重写似乎无法正常工作。用户被定向到我的 404 错误页面。在 .htaccess 文件中的 page.php 之前添加 https://www.example.com/ 不会产生预期的效果。而是将用户转发到https://www.example.com/page.php?venue=test&artist=test。虽然这不是我需要的 SEO 友好 URL,但该 URL 正确加载了页面内容,因此只能假设问题一定出在我的 .htaccess 文件中。
我已经搜索了解决方案,并找到了以下我尝试过的解决方案,包括在我的 .htaccess 中,但没有任何成功。
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [Rs,L]
有没有人可以输入我的.htaccess 文件以使我能够通过 https 访问该站点?
【问题讨论】: