重定向后重写htaccess

时间:2016-05-01 10:51:54

标签: apache .htaccess redirect mod-rewrite

我有一个网站,它使用htaccess将所有页面重写到索引页面,然后使用哈希值来提供内容。该文件看起来像这样....

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*)$ /index.php?urlpath=$1 [NC,L,QSA]

我现在正在移动网站的某些页面,但是如果我添加了重定向,例如....

Redirect 301 /blog /new_location/blog/

我遇到问题,结果网址看起来像

https://mydomain/new_location/blog/urlpath=blog.php

任何人都可以建议我将页面重定向到mydomain / new_location / blog /,然后在新网址上运行重写。

非常感谢

2 个答案:

答案 0 :(得分:0)

RewriteRuleRedirect来自不同的Apache模块,因此在处理过程中的不同时间运行,而不是按照它们在配置中出现的顺序运行。通过使用[R]标记到RewriteRule,您最好坚持使用一个模块或另一个模块。

RewriteRule /blog(.*) /new_location/blog$1 [R=301]

答案 1 :(得分:0)

好的,我设法使用Redirect和Rewrite这样的组合工作......

def smaller_then_ten(e):
    return e[0] < len(e)

def foo(los, n=None):
    n = n or len(los)
    h = it.takewhile(smaller_then_n, enumerate(los))
    s = sorted(h)
    g = it.groupby(s)
    return dict(it.starmap(lambda k, vs: (k, sum(map(lambda i: 1, vs))), g))

alist=[1,2,3,1,1,7,8,9,9]

print(foo(alist))

也许不是最好的解决方案,但它有效!