.htaccess htaccess永久重定向索引php到root

.htaccess htaccess永久重定向索引php到root,.htaccess,.htaccess,我使用的是magento,我所有的URL都包含index.php。 有人能给我删除index.php的代码吗 我的url看起来像这样 example.com/index.php/hi-how-are-you.html 我想把它重定向到 example.com/hi-how-are-you.html 我希望如果有人使用index.php访问页面,它应该重定向到non-index.php url,这在Magento论坛中已经讨论过多次,请参见示例 要将访问者从/index.php/path重定向到

我使用的是magento,我所有的URL都包含index.php。 有人能给我删除index.php的代码吗

我的url看起来像这样

example.com/index.php/hi-how-are-you.html

我想把它重定向到

example.com/hi-how-are-you.html


我希望如果有人使用index.php访问页面,它应该重定向到non-index.php url

,这在Magento论坛中已经讨论过多次,请参见示例


要将访问者从
/index.php/path
重定向到
/path
,可以使用以下mod_重写规则:

RewriteRule ^index.php/(.*) $1 [R=301,QSA,L]

要排除管理区域,请在重写规则(!)之前添加以下条件

RewriteCond %{REQUEST_URI} !^/index.php/admin/
RewriteRule ^index.php/(.*) $1 [R=301,QSA,L]

这告诉
mod_rewrite
如果请求以
/index.php/admin

开始(
^
),则不(
)重写。这已在Magento论坛中多次讨论,请参见例如


要将访问者从
/index.php/path
重定向到
/path
,可以使用以下mod_重写规则:

RewriteRule ^index.php/(.*) $1 [R=301,QSA,L]

要排除管理区域,请在重写规则(!)之前添加以下条件

RewriteCond %{REQUEST_URI} !^/index.php/admin/
RewriteRule ^index.php/(.*) $1 [R=301,QSA,L]

这告诉
mod_rewrite
not(
)如果请求以
/index.php/admin

开始(
^
),请重写。您好,谢谢您的回答。是的,我启用了mod rewrite。以及它的工作原理。但我的问题是,人们也可以使用这个url example.com/index.php/hi-how-are-you.html访问页面。我只希望他们重定向到example.com/hi-how-are-you.html。我不希望一个页面有两个url。Thanks@user1091558好吧,我想我误解你了。我相应地更新了我的答案。你能告诉我如何对管理员页面进行例外处理吗?我的意思是example.com/index.php/admin/hi-how-are-you.html我希望这些url与它完全一样。因为它导致了管理区域的问题。谢谢!这非常有效。请注意,您应该使用符号“而不是‘
RewriteRule^index.php/(.*)”$1[R=301,QSA,L]RewriteCond%{REQUEST_URI}^/index.php/admin/使用1.5.1
您好,谢谢您的回答。是的,我启用了mod rewrite。以及它的工作原理。但我的问题是,人们也可以使用这个url example.com/index.php/hi-how-are-you.html访问页面。我只希望他们重定向到example.com/hi-how-are-you.html。我不希望一个页面有两个url。Thanks@user1091558好吧,我想我误解你了。我相应地更新了我的答案。你能告诉我如何对管理员页面进行例外处理吗?我的意思是example.com/index.php/admin/hi-how-are-you.html我希望这些url与它完全一样。因为它导致了管理区域的问题。谢谢!这非常有效。请注意,您应该使用符号“而不是‘
RewriteRule^index.php/(.*)”$1[R=301,QSA,L]RewriteCond%{REQUEST_URI}^/index.php/admin/使用1.5.1