我正在尝试将www.mysite.com/foo/bar
等网址重定向到www.mysite.com/foo/index.php?foo=bar
。
要做到这一点,我在.htaccess
文件中使用了几行,它们如下:
RewriteEngine On
RewriteRule ^foo/([a-z]+)/?$ foo/index.php?bar=$1 [NC,L]
这适用于通过HTTP建立的连接,但我确实需要通过HTTPS工作。当我转到https://www.mysite.com/foo/bar
时,我会看到404 Not Found
错误页面。
任何通过HTTPS工作的帮助(或解释为什么不能通过HTTPS完成)都会很棒。感谢。
修改 在阅读了一些评论后,这是一个更新。
echo $_SERVER['DOCUMENT_ROOT'];
检查了这一点 - 两者都返回相同的内容。The requested URL document_root/public_html/foo/index.php was not found on this server.
我不知道为什么会出现这种情况,如果我直接访问该文件,我可以好好用。希望这些额外的信息可能会有所帮助。
答案 0 :(得分:1)
在寻找解决方案并查看.htaccess
文件示例后,我找到了解决方案。我需要将以下行添加到我的.htaccess
文件中:
RewriteBase /
我仍然不确定为什么,如果没有这一行,它可以使用HTTP而不是HTTPS,但是所有内容都适用于添加此行。
我不是这个领域的专家,但我找到了RewriteBase
在这里所做的很好的解释(第4行):http://randomtype.ca/blog/the-wordpress-htaccess-file-explained/