.htaccess查询重新分区URL和404中的子目录错误

时间:2012-01-21 03:34:19

标签: .htaccess

我在域名www.mydomain.com/alpha/上安装了网站[目录无法立即更改]

问题1: 将请求重定向到www.mydomain.com到www.mydomain.com/alpha/

(一旦重定向发生,其他链接也不应在URL中显示alpha)

问题2: 我网站上的其他链接在网址中有alpha。有没有办法在用户点击任何链接之前删除此alpha。

问题3: 我在www.mydomain.com/alpha2/上有另一个网站,这不应该受到影响。 我把以下.htaccess和这个网站扔了404错误。

RewriteCond $1 !^alpha/
RewriteRule ^(.*)$ /alpha/$1 [L]

1 个答案:

答案 0 :(得分:1)

更改站点上的目录会有更好的性能。如果您不能这样做,那么您可以尝试将以下内容添加到您网站的根目录中的.htaccess。

它假设每个站点(alpha和alpha2)都是自包含的,即所有资源(css,js等)分别位于alpha和alpha2目录中。如果不是这样,那么规则可能需要调整

RewriteEngine on
RewriteBase /

### first 301 redirect all /alpha requests to without alpha
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /alpha(/[^\ ]+) [NC]
RewriteRule ^ http://%{HTTP_HOST}%1 [R=301,L]

### next rewrite all requests to alpha
#prevent internal redirects
RewriteCond %{ENV:REDIRECT_STATUS} !200
#exclude alpha2
RewriteCond %{REQUEST_URI} !^/alpha2/ [NC]
RewriteRule ^ alpha%{REQUEST_URI} [L]

这应解决问题1,3。

  

即使在用户点击任何链接之前,有没有办法删除此Alpha。

它涉及的更多,但是,是的,你可以编写自己的filter