我正在建立一个Magento网站,该网站不在任何子目录中,例如/shop
。
在网站上的每个网址都有index.php
附加到域名旁边之前,例如管理面板为example.com/index.php/admin
。
我在Magento的管理面板中启用了Mod_rewrite,并添加了一个.htaccess
文件,其中包含以下内容,以确保example.com/admin
实际进入管理面板,依此类推。它确实有效。
这是htaccess
配置:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
问题在于,当我手动输入example.com/index.php/admin
时,它会按照预期将我带到管理面板,但网址仍然保留,我希望它会重定向到正确的网址example.com/admin
,但我是不能够。
我是否必须向htaccess
添加任何配置或与Magento相关?
答案 0 :(得分:2)
您可以使用以下重写规则来执行此操作:
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]
这将检查网址是否包含index.php
,如果是,则会重定向到没有index.php的网址。