【发布时间】:2014-06-26 06:00:57
【问题描述】:
我知道有很多关于 Apache RewriteRules 的问题,尤其是关于删除尾部斜杠的问题。我看了很多,但似乎找不到任何人试图解决这个问题。
我使用的是 Magento,所以 URL 结构如下所示:
- example.com/index.php
- example.com/index.php/
- example.com/index.php/page1/
这是我理想的 URL 结构:
- example.com
- example.com/page1/
- example.com/page2/
所以基本上我只想剥离 index.php 并确保裸域没有尾部斜杠(example.com 而不是 example.com/)。另外,如果可能的话,我不想包含硬编码的域名,以便可以在不同的环境中应用重写。
这是我目前的重写...
RewriteCond %{REQUEST_URI} ^/index\.php/?
RewriteRule ^index.php/(.*) /$1 [R=301,L]
这似乎适用于所有情况,除了:
- example.com/index.php(根本不起作用)
- example.com/index.php/(留下斜杠)
我将不胜感激任何正则表达式的建议!谢谢。
更新 感谢@zx81 的以下回答,我已成功将所有 URL 剥离到根域,但仍然无法删除斜杠。
这里是当前 URL:example.com/
而且我无法删除尾部斜杠!
【问题讨论】:
标签: regex apache .htaccess magento mod-rewrite