我正在将一个500多页的大型静态网站转移到Joomla安装中,但我想要做的,而不是编写500多行.htaccess文件,是使用PHP内置的301头重定向来动态重定向进来的请求到新的URL.
例如,在我移动网站后,以下网址将为404而没有重定向 -
http://www.foo.com/old_page.html
我希望它重定向到
http://www.foo.com/old-page.php
Run Code Online (Sandbox Code Playgroud)
所以我想创建一个旧URL的MySQL数据库及其相应的新URL,然后,如果服务器要返回404,首先要检查数据库是否有现有旧URL,如果匹配,则发出301重定向到新URL.对,我在这里有道理吗?
我该怎么办?我可以"谈论"逻辑,但不确定从哪里开始或如何实现它,因为虽然我理解PHP,但我真的不明白它如何与Apache一起工作(或者即使它会例如......) ?
如果你知道任何已经在做这个的脚本,那就更好了.
我们有一个网站,我们最近迁移到ASP.NET MVC.现在所有的URL都与原始网站不同.谷歌仍然拥有我们所有的旧网址,因此如果有人在搜索中找到我们,目前他们将获得404.
我有一条捕获不良网址的catchall路由,包括所有旧网址.在一个完美的世界中,我想对所有匹配此catchall路由的URL进行301重定向到主页,并且我确实有在我的开发机器上正常工作的代码.但是,我终于有人在我们的ISP(网络解决方案)告诉我他们阻止 301重定向(Web服务器返回404).
所以我认为我唯一剩下的选择是接受任何错误的URL,并将其指向主页.
这是我的问题:我知道搜索引擎(特别是谷歌)现在正在惩罚重复的内容.如果我只是将所有错误的URL指向主页,那么在搜索排名中这会对我们造成多大的伤害呢?我还有其他技术选择吗?
我正在Rails中建立一个网站来取代现有的网站.在routes.rb我试图将一些旧的URL重定向到他们的新等价物(一些URL slugs正在改变,所以动态解决方案是不可能的.)
我routes.rb看起来像这样:
match "/index.php?page=contact-us" => redirect("/contact-us")
match "/index.php?page=about-us" => redirect("/about-us")
match "/index.php?page=committees" => redirect("/teams")
Run Code Online (Sandbox Code Playgroud)
当我访问时,/index.php?page=contact-us我没有被重定向到/contact-us.我已经确定这是因为Rails正在删除get变量而只是尝试匹配/index.php.例如,如果我/index.php?page=contact-us进入以下路线,我将被重定向到/foobar:
match "/index.php?page=contact-us" => redirect("/contact-us")
match "/index.php?page=about-us" => redirect("/about-us")
match "/index.php?page=committees" => redirect("/teams")
match "/index.php" => redirect("/foobar")
Run Code Online (Sandbox Code Playgroud)
如何将GET变量保留在字符串中并按照我喜欢的方式重定向旧URL?Rails是否有预期的机制?
rack routes ruby-on-rails http-status-code-301 ruby-on-rails-3
目前双方http://example.com并http://www.example.com工作正常。但是,我们需要将所有http://example.comurl 重定向到http://www.example.com.
该站点是一个 ASP.net MVC4 网站。为了完成它,我在 System.webserver 下添加了以下 web.config 条目。
<httpRedirect enabled="true" destination="http://www.example.com" />
Run Code Online (Sandbox Code Playgroud)
但是,它导致重定向循环。你能帮我完成这件事吗?
我无法开始执行此 301 重定向,我必须从所有请求中删除“BeTa”一词,然后重定向:
FROM:
http://www.example.com/BeTa/other/content
TO:
http://www.example.com/other/content
“BeTa”也可能出现在网址的其他部分:
FROM:
http://www.example.com/bla/BeTa/other/content
TO:
http://www.example.com/bla/other/content
是否可以?现在我只尝试了第一部分:
RewriteEngine on
RewriteRule ^/BeTa/(.*)$ /$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
提前致谢
我需要在实时服务器上设置 laravel 背包的帮助。
所以一开始我在加载资源时遇到了麻烦,因为它使用 http 作为图像和 css
我可以使用我得到的代码解决这个问题
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
Run Code Online (Sandbox Code Playgroud)
资产已正确加载(它显示https://example.com/images/ ...当我检查时)
但不知何故,一些关键内容没有通过 https 加载,截图如下:

随着错误
从源“ https://example.com ”访问位于“ http://example.com/admin/elfinder/connector ”的 XMLHttpRequest已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:重定向不允许用于预检请求。
这是错误的代码
<!-- This file is used to store sidebar items, starting with Backpack\Base 0.9.0 -->
<li>
<a href="{{ backpack_url('dashboard') }}">
<i class="fa fa-dashboard"></i>
<span>{{ trans('backpack::base.dashboard') }}</span>
</a>
</li>
Run Code Online (Sandbox Code Playgroud)
还有一些内容没有更新为 https,例如一些 CSS(来自供应商/crud)、脚本、post 方法和徽标
我认为我可以将元标记复制粘贴到backpack_url,但我不知道它在哪里或它是如何工作的。
我对此很陌生,如有任何建议,我们将不胜感激
谢谢!
http-status-code-301 http-status-code-302 laravel laravel-blade laravel-backpack
我的默认页面中有一些脚本,根据浏览器的语言将用户重定向到我网站的特定语言版本.我想添加一些重定向那些没有启用Javascript的用户的东西.
目前我有以下内容:
<noscript>
<META HTTP-EQUIV=REFRESH CONTENT="1; URL=en/index.htm">.
</noscript>
Run Code Online (Sandbox Code Playgroud)
但我已经读过这个并不太明智,因为一些搜索引擎不屑一顾.我该怎么做并保持搜索引擎的快乐?
升级我们的网站后,人们在博客等方面的许多旧链接现在都会转到我们的404错误页面.
一个例子是:(使用h#pb/c我是一个新用户,不能发布链接)
h#p://www.site.com/pressreleases/some_release.html
h#p://www.site.com/pressreleases/another_release.html
Run Code Online (Sandbox Code Playgroud)
这些项目现在是数据库驱动的网站的一部分,将在这里生效:
h#p://www.site.com/pressreleases/details.php?id=1
h#p://www.site.com/pressreleases/details.php?id=2
Run Code Online (Sandbox Code Playgroud)
如何设置301重定向
h#p://www.site.com/pressreleases/some_release.html
到
h#p://www.site.com/pressreleases/details.php?id=1,
而
h#p://www.site.com/pressreleases/another_release.html
到
h#p://www.site.com/pressreleases/details.php?id=2?
谢谢
我使用这个Perl子例程从网页获取一行,然后我将其拆分以获取我需要继续的信息.这已经工作了十几年.
sub capture_line {
my $page_to_get = $_[0];
my $host_to_get_text = $_[1];
my $port = 80;
my $buf = &HTTPGet($page_to_get, $host_to_get_text, $port);
my $image_capture_text;
my @lines = split(/\n/,$buf);
# print "$lines[1]\n";
# print "$page_to_get, $host_to_get_text\n";
# print "$buf\n";
foreach (@lines) {
if (/$text_to_find/i) {
$image_capture_text = $_;
print "in_loop";
last;
}
}
return $image_capture_text;
}
Run Code Online (Sandbox Code Playgroud)
不可原谅的$page_to_get是,现在总是301重定向,并且$buf在打印时,给我一个301重定向页面,显然不包含所需的文本.是否有一个$in值对(例如),我可以使用它HTTPGet来跳过重定向,以便我得到我在http://$host_to_get_text$page_to_get浏览器中输入时看到的页面?或者是否有更好的方法来完成相同的事情(知道在查看的网页的源中不断变化的文件名)?
感谢您的时间.格雷格马什
我需要重定向请求像http://domain.com/?part=word到http://another_domain/?part=word,"字"可能是不同的
我的nginx配置:
server {
listen 80;
server_name domain.com www.domain.com;
rewrite ^/?part=(.*)$ http://another_domain/?part=$1 permanent;
}
Run Code Online (Sandbox Code Playgroud)
重定向不起作用,我做错了什么?
我有一个网页,他的网址是http://wwww.example.com/category/door/
但我想的重定向(301)http://www.example.com/category/到http://www.example.com/category/door/因为内容http://www.example.com/ category /为空。
我的重写规则如下:
RedirectPermanent /category/ /category/door/
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为浏览器将http://www.example.com/category/重定向到http://www.example.com/category/door/door/door/door/door/door/door/door/门/无限。
一个主意 ?谢谢。
我根本无法让 301 重定向在 Netlify 中工作(我看过其他答案,但它不起作用)。
我制作了 _redirects 文件并将其放在我的 github ripo 的根目录中。
https://zen-booth-7b30d6.netlify.com/* https://www.ionvarsescu.tk/:splat 301!
我希望当有人输入这个:https://zen-booth-7b30d6.netlify.com/他会被重定向到这里:https://www.ionvarsescu.tk ,但这不会发生。
我正在尝试将https://affectate-yalow-1e0141.netlify.com/重定向到https://www.ionvarsescu.tk/portofolio/
这也不起作用
谢谢您的帮助