我用这个简单的规则来从我的网站的网址中index.php
增加301重定向:我是否需要使用htaccess的时候美化一个URL
RewriteRule ^.*$ ./index.php
这样http://example.com/index.php/user/me
变得http://example.com/user/me
。
我是否需要添加[R=301]
以避免来自SEO角度的“内容重复”问题?
我用这个简单的规则来从我的网站的网址中index.php
增加301重定向:我是否需要使用htaccess的时候美化一个URL
RewriteRule ^.*$ ./index.php
这样http://example.com/index.php/user/me
变得http://example.com/user/me
。
我是否需要添加[R=301]
以避免来自SEO角度的“内容重复”问题?
您可以添加此规则,以避免:
RewriteCond %{THE_REQUEST} \ /index\.php/([^\?\ ]*)
RewriteRule^/%1 [L,R=301]
它会重定向在它与/index.php
到一个没有提出要求。那么你已经拥有的规则将在内部重写index.php。
只需在每一页上包含link rel =“canonical”href =“http://example.com/并享受:) 阅读更多在这里https://support.google.com/webmasters/answer/139066?hl=en
感谢您的回答! 不幸的是,我无法围绕这个规则(在超过30分钟的谷歌搜索后)包围我的头,具体来说,它是“ REQUEST}',第一行的最后一个'\\'(是一个空格?),最后是第二行的^^ –
@AhmedSaoudi'%{THE_REQUEST}'变量是HTTP的第一行请求,它看起来像这样:'GET /index.php?something HTTP/1.1'。因此,'''''是匹配第一个空格。他最后的空间我们需要逃离空间,否则apache会认为他们都是单独的参数,而不是一个单一的正则表达式。 –
@AhmedSaoudi规则中的“^”只是在那里匹配“任何东西”。意味着我们不关心URI是什么,因为我们已经在'%{THE_REQUEST}'变量中匹配它了 –