【发布时间】:2023-03-04 14:58:02
【问题描述】:
我们已经为我们的网站安装了 SSL,并且我使用以下代码创建了一个 .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{ENV:HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
# mobile redirect
RewriteCond %{HTTP_HOST} ^www\mobile.example\.com [NC]
RewriteCond %
{HTTP_USER_AGENT}"android|blackberry|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
RewriteRule ^(.*)$ https://mobile.example.com/$1 [L,R=302]
</IfModule>
此代码在桌面上运行良好,但移动部分无法运行。我错过了什么?
【问题讨论】:
-
您能否修正一下您的代码格式。使用三个反引号来格式化代码块(或使用工具栏上的按钮为整个块添加 4 个空格)。看起来您在移动代码块中有一个细微的错误,但这可能只是由于您缺少 空格 的帖子格式?!
-
那里,应该会更好。对此感到抱歉。
-
你对我的回答感觉如何?
-
我根据您的示例更改了代码,并收到“内部服务器错误服务器遇到内部错误或配置错误,无法完成您的请求....有关此错误的更多信息可能在服务器错误日志”适用于台式机和移动设备。我对 .htaccess 中的任何内容都非常陌生,并且我的主机站点仅将我引向该站点,并且无助于确定任何代码。因此,我将非常感谢您的帮助。
-
我的回答中的代码没有什么特别错误会导致“500 内部服务器错误”,除非您的服务器上未启用 mod_rewrite(似乎不太可能并且您的网络主机会/应该提醒您到这个)?!您需要检查服务器的错误日志以了解此错误的详细信息。 “内部服务器错误”只是一般错误,实际问题可能是任何问题。您请求的 URL 是什么?如果您的“主机站点没有帮助”,您从哪里获得
RewriteCond %{ENV:HTTPS} !=on?这是非常特定于主机的。
标签: .htaccess redirect mod-rewrite mobile