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
.htaccess htaccess 301与重定向404_.htaccess_Web_Http Status Code 404_Http Status Code 301 - Fatal编程技术网

.htaccess htaccess 301与重定向404

.htaccess htaccess 301与重定向404,.htaccess,web,http-status-code-404,http-status-code-301,.htaccess,Web,Http Status Code 404,Http Status Code 301,我正在从Drupal迁移我的站点,在此过程中,所有URL都将更改为新格式。我一直在通过.htaccess文件查看301重定向以完成任务。总共有150个页面,每个页面大约有2种访问方式(用户友好的“blog/foo”和默认的“node/123”-我不包括每个url前面都有“?q=”的“unclean”版本)。它们并没有真正遵循一种格式,所以我不能有一个规则来捕获它们(并且在黑暗中绑定它们) 当读取一个.htaccess时,似乎对于每个url请求,都会访问.htaccess,并按顺序运行所有规则,以

我正在从Drupal迁移我的站点,在此过程中,所有URL都将更改为新格式。我一直在通过
.htaccess
文件查看301重定向以完成任务。总共有150个页面,每个页面大约有2种访问方式(用户友好的“blog/foo”和默认的“node/123”-我不包括每个url前面都有“?q=”的“unclean”版本)。它们并没有真正遵循一种格式,所以我不能有一个规则来捕获它们(并且在黑暗中绑定它们)

当读取一个
.htaccess
时,似乎对于每个url请求,都会访问
.htaccess
,并按顺序运行所有规则,以查看一个是否匹配。这意味着,对于我的150个页面,在最坏的情况下(用户输入的url不需要重定向),将测试大约300条规则。是这样吗

使用301重定向与让所有旧URL点击一个自定义404页面(该页面将尝试在那里进行重定向)相比,有什么优点和缺点?因此,服务器不是为每个url运行300条规则,而是仅在访问404页面时才运行这些规则

一般的规则是使用301将pagerank或其他东西传递给新的url吗

当读取一个.htaccess时,似乎每个url请求都会访问.htaccess,并按顺序运行所有规则,以查看一个是否匹配。这意味着,对于我的150个页面,在最坏的情况下(用户输入的url不需要重定向),将测试大约300条规则。是这样吗

.htaccess文件被缓存,其中的任何指令都被缓存。在服务器或vhost配置中使用mod_重写规则肯定会更快,但当我在一个htaccess文件中有成千上万条规则时,我从未注意到任何明显的速度减慢。在你的例子中,可能会有大约150个模式被应用,它可能不会被注意到

这里的其他选项是通过脚本或CMS中的插件来实现,这是否比Web服务器本身中的动态规则快还值得商榷

另一个选项是使用,这是您只能从服务器/vhost配置中设置的。它允许您创建匹配的外部映射(通过文本文件、程序、数据库查询等),您可以使用单个规则从htaccess文件使用这些映射

使用301重定向与让所有旧URL点击一个自定义404页面(该页面将尝试在那里进行重定向)相比,有什么优点和缺点?因此,服务器不是为每个url运行300条规则,而是仅在访问404页面时才运行这些规则

一般的规则是使用301将pagerank或其他东西传递给新的url吗

是的,如果您使用404,那么与旧链接关联的任何元数据都将消失。如果你将它重定向到新的位置,你就可以带上任何与旧链接相关的元数据。如果你不关心搜索引擎优化或元数据,那么让这些链接404肯定更容易