Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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
Php 如何重定向?_Php_Apache_Mod Rewrite_Url Rewriting - Fatal编程技术网

Php 如何重定向?

Php 如何重定向?,php,apache,mod-rewrite,url-rewriting,Php,Apache,Mod Rewrite,Url Rewriting,如果我的网站上有2000个链接,我应该为每个链接编写修改重写规则吗 我只想要一条规则 如果我使用内部重写规则来更改网页名称,而不是重定向,那么我的内容是否会重复?例如,如果我将/oldpage.html重写为/working-person.html,它会得到一个指向working-person.html的内部重定向。这确实有效。但是oldpage.html仍然是一个“直接”链接,并且不显示301 如果在末尾添加[R]或[R=301],服务器将抛出500错误: RewriteRule ^oldpa

如果我的网站上有2000个链接,我应该为每个链接编写修改重写规则吗 我只想要一条规则 如果我使用内部重写规则来更改网页名称,而不是重定向,那么我的内容是否会重复?例如,如果我将/oldpage.html重写为/working-person.html,它会得到一个指向working-person.html的内部重定向。这确实有效。但是oldpage.html仍然是一个“直接”链接,并且不显示301

如果在末尾添加[R]或[R=301],服务器将抛出500错误:

RewriteRule ^oldpage.html$ working-person.html [R=301].
另一方面

Redirect 301 /oldpage.html http://www.example.com/working-person.html
…有效。我应该使用重定向吗

我想我读到了在使用其他指令时使用重写规则而不是重定向的地方。如果得到重复的内容,为什么要使用内部重写


谢谢你的任何想法/意见。

你想使用
301
(永久移动以便搜索引擎(如谷歌)可以重新索引你的网站。一旦发生这种情况,你就不再需要重定向了


您不应该有重复的内容。

您的这一行有语法错误:

RewriteRule ^oldpage.html$ working-person.html [R=301].
最后有一个点导致500个内部错误

改为:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteRule ^oldpage\.html$ /working-person.html [R=301,L,NC]
如果你有2000多个链接,那么请提供一些旧链接和新链接的示例,以便我可以建议是否可以通过一些mod_重写规则来处理这些链接

确保通过
httpd.conf
启用mod_rewrite和.htaccess,然后将上述代码放在
文档根目录下的
.htaccess