Htaccess - 重定向太多

时间:2015-03-06 15:41:49

标签: .htaccess

嗨我的htaccess有问题。我有新版本的网站(位于www.mywebsite.cz)和旧版本(位于mywebsite.cz(没有www))。

我需要将所有非www页面重定向到www,除了文件夹admin,它总是必须是非www。例如:

mywebsite.cz/admin/ -> mywebsite.cz/admin/
www.mywebsite.cz/admin/ -> mywebsite.cz/admin/

我有两个htaccess文件,一个用于新网站,另一个用于旧版本。

旧网站htaccess:

Options +FollowSymLinks 
Options -Indexes
RewriteEngine On
#RewriteBase  /

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{REQUEST_URI} !^/admin/ [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

新网站htaccess:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{REQUEST_URI} ^/admin/ [NC]
RewriteRule ^(.*)$ http://mywebsite.cz/admin/ [R=301,L]

RewriteRule /\.|^\. - [F]
# front controller
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]

问题是,当我尝试www.mybsite.cz/admin/时,它会返回太多的重定向。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

将此添加为新网站htaccess中的第一条规则:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ - [L]

或者,将前端控制器规则中的/admin排除为

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/admin(/.*)? [NC]
RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]