嗨我的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/时,它会返回太多的重定向。有人可以帮帮我吗?
答案 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]