我们最近更新了我们的网站; 旧的有大约300页......新的大约有80页;)
这是因为在旧结构中,对于每个参数,我们都有很多页面.相反,现在我们只有一个页面带有"摘要".
例如,关于'car'参数的旧结构是:
现在,我们只有1页'汽车',里面都有.
实际上,我将所有子页面重定向到主页面,使用.htaccess 301重定向:
Redirect 301 /cars-tires.php http://www.example.com/cars.php
Redirect 301 /cars-engines.php http://www.example.com/cars.php
Redirect 301 /cars-accessories.php http://www.example.com/cars.php
Run Code Online (Sandbox Code Playgroud)
所以我们有很多不同的(即使主题是相同的)页面指向一个页面.
你觉得这对seo有好处,还是会更好地重定向旧的主页面并给旧的子页面找不到404?
因此,经过大量的帮助和研究,我最终能够通过.htaccess文件获得301重定向,但我注意到,除非我在浏览器上实际点击"刷新",否则由于只是阅读缓存的网站而不会重定向页面.
我已经尝试关闭所有浏览器,插入.htaccess文件,然后打开一个新的浏览器,但它仍然打开缓存的网站.我猜想大多数客户都不会打扰刷新页面,如果他们不这样做,这将花费很长时间才能发现确实有新的页面!
有任何想法吗?谢谢!
-Karl
编辑:我只是想在我们当前的主页上添加一个链接,说"点击这里查看我们的新网站!" 并且该链接将刷新页面,从而将301重定向转为行动.任何人都可以想到这有任何负面影响吗?
我正在尝试在我的一个控制器中发出redirect_to到一个完全限定的URL +我想传递一些参数
在网站AI的控制器中:
redirect_to: "www.siteB.com/my_controller/my_action?my_parameter=123"
Run Code Online (Sandbox Code Playgroud)
在rails中有更好的方法吗?
ruby ruby-on-rails http-status-code-301 http-status-code-302
我正在开展一个大型项目,涉及获取数千(30,000+)个静态网页并将其转换为CMS.
问题是这些页面中的许多页面在其目录中是重复的.我想通过使用301重定向保持SEO完好无损,但是,我不知道如何进行如此大的重定向(301).
以下是页面当前目录结构的示例.
/page.html /folder/page.html /folder/subfolder/page.html /folder/subfolder/anotherfolder/page.html
如您所见,page.html在所有目录中都是重复的.
对于新CMS,该页面的URL就是/page.html.
我需要从mydomain.com或www.mydomain.com等主域重定向到sub.mydomain.com - 这需要适用于所有请求,所以mydomain.com/whatever转到sub.mydomain.com/whatever.
我试过这个,只适用于主域的非www:
RewriteCond %{HTTP_HOST} ^mydomain.com [NC]
RewriteRule ^(.*)$ http://sub.mydomain.com/$1 [L,R=301]
Run Code Online (Sandbox Code Playgroud) 我创建了以下PHP函数到网页的HTTP代码.
function get_link_status($url, $timeout = 10)
{
$ch = curl_init();
// set cURL options
$opts = array(CURLOPT_RETURNTRANSFER => true, // do not output to browser
CURLOPT_URL => $url, // set URL
CURLOPT_NOBODY => true, // do a HEAD request only
CURLOPT_TIMEOUT => $timeout); // set timeout
curl_setopt_array($ch, $opts);
curl_exec($ch); // do it!
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE); // find HTTP status
curl_close($ch); // close handle
return $status;
}
Run Code Online (Sandbox Code Playgroud)
如何修改此功能以遵循301和302重定向(可能的多重定向)并获取最终的HTTP状态代码?
很抱歉,如果这个问题应该在Server Vault中.我无法确定这是编程错误还是服务器配置错误.
我最近将我的git提交推送到了实时服务器,我注意到一些非常令人沮丧的事情.
无论我如何编辑urls.py,我似乎无法更新RedirectView!
这是我的根 mysite/urls.py
urlpatterns = patterns('',
url(r'^$', RedirectView.as_view(url=reverse_lazy('order_list')), name='home'),
url(r'^doors/', include('doors.urls')),
url(r'^accounts/', include('registration.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^{}/'.format(settings.DAJAXICE_MEDIA_PREFIX), include('dajaxice.urls')),
)
Run Code Online (Sandbox Code Playgroud)
命名的URL order_list来自我的一个应用程序urls.py
urlpatterns = patterns('doors.views',
url(r'^order/$', OrderListView.as_view(), name='order_list'),
# And more URL patterns...
)
Run Code Online (Sandbox Code Playgroud)
所以基本上我只是改变r'^orders/$'到r'^order/$'的最后一次提交.但每当我这样做时{% url home %},我注意到服务器一直试图重定向到旧的路径/doors/orders/而不是/doors/order/.我还注意到重定向是一个301 Moved Permanently.
于是,我就添加permenant=False到RedirectView并重新启动服务器.但它仍然去/doors/orders/和重定向仍然是301(它应该是302)!
为什么我没有RedirectView重定向到更新的URL?
服务器信息
在Gentoo Linux上使用mod_wsgi和Django …
我们正在用 PHP 开发一个 URL 缩短器项目。我们使用 301 HTTP 重定向并自然地跟踪我们的链接访问。但有一些奇怪的事情:
我们缩短了一个网址,通过浏览器通过后,只跟踪了第一次访问,好像没有其他请求发送到我们的服务器,直接转到目标网址。(我认为这是浏览器缓存之后一试)。但 :
当尝试使用类似bitly 的服务时,它有不同的待遇。相同浏览器上的一些相同请求在位访问跟踪中被跟踪(实际上不止一个,我不明白为什么,我没有看到任何逻辑),同时它们也使用 301 重定向。(在左边浏览器窗口的底部有时会写“waiting for bit.ly...”,有时不会,实际上是随机的)。
这里包含任何技巧吗?这种不同的待遇会发生什么?
这个问题可能已得到解答,但我似乎无法找到合适的解决方案.
我想301重定向所有页面,如下所示
http://www.domain1.com/nl/dolor/sith
http://www.domain1.com/nl/loremipsum
http://www.domain1.com/nl
Run Code Online (Sandbox Code Playgroud)
到新域,同时删除查询字符串,如下所示:
http://www.domain2.nl
Run Code Online (Sandbox Code Playgroud)
所有其他页面,例如http://www.domain1.com/be/loremipsum应该仍然可以使用.只有带后缀的那些nl应该重定向.
请注意,这些不是真正的目录:在我的.htaccess文件中,我有以下语句来重写我的查询字符串:
# Personal Rewrites
RewriteRule ^([A-Za-z0-9-_]+)/?$ index.php?lid=$1 [L]
RewriteRule ^([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/?$ index.php?lid=$1&pl1=$2 [L]
RewriteRule ^([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/?$ index.php?lid=$1&pl1=$2&pl2=$3 [L]
RewriteRule ^([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/?$ index.php?lid=$1&pl1=$2&pl2=$3&pl3=$4 [L]
RewriteRule ^([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/?$ index.php?lid=$1&pl1=$2&pl2=$3&pl3=$4&pl4=$5 [L]
RewriteRule ^([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/?$ index.php?lid=$1&pl1=$2&pl2=$3&pl3=$4&pl4=$5&pl5=$6 [L]
Run Code Online (Sandbox Code Playgroud)
我尝试过传统的重写,但这也发送了查询字符串:
Redirect 301 /nl http://www.domain2.nl
Run Code Online (Sandbox Code Playgroud)
其他技术似乎不起作用.而且我不擅长正则表达式......
有人可以提供或链接到合适的解决方案吗?提前致谢
我试图找出是否有人成功使用来自http://tuckey.org/urlrewrite/的UrlRewriteFilter可用于在Apache Tomcat中从http到https执行301永久重定向但我似乎无处可去快速.许多人都问同样的问题,AFAICS都没有被回答如果我问错地方了,那么也许有人会热情地向"重定向"我到正确的地方.如果不可能那么也许有人可以这样说.
谢谢.
apache-tomcat-7.0.42
jdk1.8.0_77
CentOS Linux 7.2.1511
urlrewritefilter-4.0.3.jar
Run Code Online (Sandbox Code Playgroud)
tomcat docs推荐的"标准"配置如下
web.xml
<security-constraint>
<web-resource-collection>
<web-resource-name>Secure URLs</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
server.xml
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
<Connector port="443" maxThreads="150" scheme="https" secure="true"
SSLEnabled="true" keystoreFile="/opt/keys/tomcat.keystore"
keystorePass="*********" clientAuth="false" keyAlias="tomcat" sslProtocol="TLS" />
Run Code Online (Sandbox Code Playgroud)
在浏览器中输入localhost会导致重定向到https,使用curl检查这一点我们可以看到这是按预期工作但我们得到302临时重定向
root@sandbox:/tmp# curl -D /tmp/headers.txt -s http://localhost
HTTP/1.1 302 Found
Server: Apache-Coyote/1.1
Cache-Control: private
Expires: Thu, 01 Jan 1970 01:00:00 GMT
Location: https://localhost/
Content-Length: 0
Date: Fri, 29 Apr 2016 18:24:47 GMT
Run Code Online (Sandbox Code Playgroud)
然而,对于喜欢301永久性的谷歌而言,这是不可接受的
是否可以使用UrlRewriteFilter来实现这一目的
以下规则导致302,即使我正在使用type ="permanent-redirect",其他所有内容保持不变
<rule> …Run Code Online (Sandbox Code Playgroud) https http-status-code-301 http-status-code-302 tuckey-urlrewrite-filter