我知道有很多关于Apache RewriteRules的问题,尤其是删除尾部斜杠。我看了很多,但我似乎找不到任何人试图解决这个问题。
我正在使用Magento,因此URL结构如下所示:
这是我理想的网址结构:
所以基本上我只想剥离index.php并确保裸域没有斜杠(example.com而不是example.com/)。另外,如果可能的话,我不想包含硬编码的域名,以便可以在不同的环境中应用重写。
这是我目前的重写......
RewriteCond %{REQUEST_URI} ^/index\.php/?
RewriteRule ^index.php/(.*) /$1 [R=301,L]
这似乎适用于所有情况,除了:
我很感激任何正则表达式的建议!谢谢。
更新 感谢@ zx81中的以下答案,我已成功将所有网址剥离到根域,但仍无法删除斜杠。
所以这是当前的URL:example.com /
我无法删除尾随斜杠!
答案 0 :(得分:1)
无法测试它,但试试这个。
RewriteRule ^index\.php()/?(?:([^/]+)/)? $1$2 [R=301,L]
()
,它应该处理一个根本不起作用的那个。