【发布时间】:2017-06-14 03:30:18
【问题描述】:
我用来将所有内容重定向到 index.php 的方法似乎存在问题,该方法位于我的根文件夹 public_html 中。应该没有例外 当然这是当然的,除非文件夹关闭了 RewriteEngine。为简单起见,假设我使用 www.example.com 作为我的网站。
我的 .htaccess 如下所示:
RewriteEngine on
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
- 例如,假设我在浏览器中输入:www.example.com/test
- 它在内部按预期重定向到:www.example.com/index.php?url=test
问题:
- 我希望浏览器仍然显示:www.example.com/test
- 但是,浏览器现在显示:www.example.com/test/?url=test
这个凌乱的名字只有在我的根目录中有一个名为 test 的文件夹时才会出现。如果我删除该文件夹,它会显示:
- www.example.com/test
但是,如果我再次添加该文件夹,它会显示:
- www.example.com/test/?url=test
它仍然可以正确重定向,但看起来不再干净。 我很好奇的是究竟是什么导致了它的行为方式以及如何解决/预防它。
请注意,我总是想重写 url。所以我不想为文件夹做例外。无论是否有文件夹,它的外观和工作方式都应该相同。
编辑 1:根文件夹是 public_html,所以 example.com(作为示例)
编辑 2:更改了问题的措辞,问题仍然相同。
编辑 3:更改了问题的格式。
编辑4:补充说我要重写url,不管文件夹是否存在。
【问题讨论】:
-
目前我用作添加斜杠的解决方案。所以 www.example.com/test 将首先被转换为 www.example.com/test/。使用斜杠时,它不显示 /?url=test 。然而,我仍然不知道为什么它首先显示 url 参数。
标签: apache .htaccess url redirect mod-rewrite