2015-01-20 139 views
0

我的网站曾经有很多公司上市下:301旧目录内容重定向到新的目录

www.example.com/Directory <!-- old directory homepage 
www.example.com/Directory/viewprofile.php?id=1599&company=test+company 

我现在已经改变了整个CMS。新的配置文件是为现在如下:

www.example.com/directory <!-- directory homepage 
www.example.com/listing/listing/rennicks-mts/ <!-- individual listing page 

1.我只是想获得一个想法,如果我的301重定向是这个新的设置正确。

Redirect 301 ^/Directory http://www.highwaysindustry.com/directory/ 

此外,我的重定向是否意味着首先被任何东西包裹?整个事情如下:

# BEGIN W3TC Browser Cache 
<IfModule mod_deflate.c> 
    <IfModule mod_headers.c> 
     Header append Vary User-Agent env=!dont-vary 
    </IfModule> 
     AddOutputFilterByType DEFLATE text/css text/x-component application/x-javascript application/javascript text/javascript text/x-js text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon application/json 
    <IfModule mod_mime.c> 
     # DEFLATE by extension 
     AddOutputFilter DEFLATE js css htm html xml 
    </IfModule> 
</IfModule> 
# END W3TC Browser Cache 
# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteRule ^([_0-9a-zA-Z-]+/)?uploads/wpjobboard/application/(.+) /wp-content/plugins/wpjobboard/restrict.php?url=application/$2 [QSA,L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

# END WordPress 

Redirect 301 ^/Directory http://www.newwebsite.com/directory/ 
Redirect 301 /About-Us http://www.newwebsite.com/about 
Redirect 301 /Uploads http://www.newwebsite.com/ 

Redirect 301 /News/?page=1 http://www.newwebsite.com/ 
Redirect 301 /News/?page=2 http://www.newwebsite.com/ 
Redirect 301 /News/?page=3 http://www.newwebsite.com/ 
Redirect 301 /News/?page=4 http://www.newwebsite.com/ 
Redirect 301 /News/?page=5 http://www.newwebsite.com/ 
Redirect 301 /News/?page=6 http://www.newwebsite.com/ 

2.我所有的重定向只是立即启动,他们应该被包裹在任何其他标记?

**域是CMS变更后的相同。没有更改域名。

+0

您有什么问题摆脱所有这些Redirect指令?有什么不起作用或者你只是想知道这是否是最好的方法。后者当然是一个意见。然而,还有其他方法可以使用重写来做你正在做的事情。 – 2015-01-20 20:44:08

+0

只需检查我所拥有的是正确的,还是更好的还有其他更有效的方法。 – JordanC26 2015-01-20 21:10:13

回答

0

在这种情况下,你不能用你的mod_rewrite的规则一起使用Redirect指令。这是因为Redirect是mod_alias中的一部分,并得到应用的mod_rewrite之前mod_alias中得到应用,并将得到应用每个请求。因此,你会得到一些奇怪的结果。此外,您不能在Redirect对阵查询字符串(例如在?page=的东西),你需要使用%{QUERY_STRING}变量的条件。

尝试这样:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

RewriteRule ^Directory http://www.newwebsite.com/directory/ [L,R=301] 
RewriteRule ^About-Us http://www.newwebsite.com/about [L,R=301] 
RewriteRule ^Uploads http://www.newwebsite.com/ [L,R=301] 

RewriteCond %{QUERY_STRING} ^page=[1-6]$ 
RewriteRule ^News/$ http://www.newwebsite.com/ [L,R=301] 


RewriteRule ^index\.php$ - [L] 
RewriteRule ^([_0-9a-zA-Z-]+/)?uploads/wpjobboard/application/(.+) /wp-content/plugins/wpjobboard/restrict.php?url=application/$2 [QSA,L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

# END WordPress 

并获得最终

+0

谢谢。我现在已经有了这个功能,但是另外一个最初没有在我的文章中显示的额外功能是,我已经为600个旧版网页下了大约600个重定向301规则,将旧网页重定向到他们的新网址。 所以在这种情况下,它不是一个目录中,我定义与301个重定向多个单独的页面重定向只是一切的情况。 ** **举例:重定向301 /新闻/新湿天气修复 - 解决方案 - 从 - Ultracrete-113659 http://www.testdomain.com/New-Wet-Weather-Repair-Solution-From- Ultracrete – JordanC26 2015-01-21 12:05:23