2015-10-13 84 views
1

我用这个简单的规则来从我的网站的网址中index.php增加301重定向:我是否需要使用htaccess的时候美化一个URL

RewriteRule ^.*$ ./index.php 

这样http://example.com/index.php/user/me变得http://example.com/user/me

我是否需要添加[R=301]以避免来自SEO角度的“内容重复”问题?

回答

1

您可以添加此规则,以避免:

RewriteCond %{THE_REQUEST} \ /index\.php/([^\?\ ]*) 
RewriteRule^/%1 [L,R=301] 

它会重定向在它与/index.php到一个没有提出要求。那么你已经拥有的规则将在内部重写index.php。

+0

感谢您的回答! 不幸的是,我无法围绕这个规则(在超过30分钟的谷歌搜索后)包围我的头,具体来说,它是“ REQUEST}',第一行的最后一个'\\'(是一个空格?),最后是第二行的^^ –

+0

@AhmedSaoudi'%{THE_REQUEST}'变量是HTTP的第一行请求,它看起来像这样:'GET /index.php?something HTTP/1.1'。因此,'''''是匹配第一个空格。他最后的空间我们需要逃离空间,否则apache会认为他们都是单独的参数,而不是一个单一的正则表达式。 –

+0

@AhmedSaoudi规则中的“^”只是在那里匹配“任何东西”。意味着我们不关心URI是什么,因为我们已经在'%{THE_REQUEST}'变量中匹配它了 –

相关问题