使用.htaccess进行多次重定向

时间:2011-03-17 13:42:14

标签: .htaccess

我想这样做

website.com/blog/index.php - > website.com/blog

website.com/admin/archief_login.php - > website.com/admin

这适用于我的代码。 但我想补充一点:

website.com/aa - > website.com/web/index.php?init=aa

由于某种原因,博客获得了此重定向:website.com/blog/?init = blog

设置这些不同重写的最佳方法是什么?

  

选项All -Indexes上的RewriteEngine   RewriteCond%{HTTP_HOST}   ^ websit.com $ [OR] RewriteCond   %{HTTP_HOST} ^ www.website.com $   RewriteRule ^ admin $   “HTTP \:\ / \ / www.website.com \ /admin/archief_login.php”   [R = 301,L]

     

RewriteRule ^ blog $   “HTTP \:\ / \ / www.website.com \ /blog/index.php”   [R = 301,L]

     

DirectoryIndex client_login.php

     

重写规则   ^屏幕 - ([A-ZA-Z0-9 _-] +)的html $   index_client.php?屏幕= $ 1

     

重写规则   ^发票([A-ZA-Z0-9 _-] +)。HTML $   make_invoice.php?ID = $ 1

     

重写规则   ^包 - ([A-ZA-Z0-9 _-] +)的html $   ?index_client.php屏幕= pack_code&安培; wwwcode = $ 1

1 个答案:

答案 0 :(得分:1)

您需要在文件中放置更多“常规”规则,使其与几乎所有网址都不匹配

RewriteRule ^(\w)$ /web/index.php?init=$1 [L, NC]
RewriteRule ^blog$ /blog/index.php [R=301,L]

上面会做

website.com/aa => website.com/web/index.php?init=aa
website.com/blog => website.com/web/index.php?init=blog

如果你颠倒了两条规则,你将获得

website.com/aa => website.com/web/index.php?init=aa
website.com/blog => website.com/blog/index.php