Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 使用htaccess美化URL时是否需要添加301重定向_Apache_.htaccess_Mod Rewrite_Seo - Fatal编程技术网

Apache 使用htaccess美化URL时是否需要添加301重定向

Apache 使用htaccess美化URL时是否需要添加301重定向,apache,.htaccess,mod-rewrite,seo,Apache,.htaccess,Mod Rewrite,Seo,我使用这个简单的规则从我的站点URL中删除index.php: 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

我使用这个简单的规则从我的站点URL中删除
index.php

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/ 在每一页上享受:)。
在这里阅读更多内容

谢谢你的回答!不幸的是,我无法理解这条规则(在谷歌搜索了30多分钟后)。具体来说,这是在
请求
之后的“浮动”
\
,第一行的最后一个
\
(这是空格吗?)最后是第二行的
^
。@AhmedSaoudi
%{the_REQUEST}
变量是HTTP请求的第一行,看起来像这样:
GET/index.php?HTTP/1.1
。所以“
\
“'将匹配第一个空格。我们需要转义的最后一个空格,否则apache将假定它们都是独立的参数,而不是一个正则表达式。@AhmedSaoudi规则中的“^”只是用来匹配“任何东西”。这意味着我们不关心URI是什么,因为我们已经在
%{the_REQUEST}
变量中匹配了它