2014-03-30 122 views
1

请让我知道我的htaccess重写规则为PHP文件有什么问题。重写规则不起作用

#Options +FollowSymLinks 
# RewriteEngine On 
# RewriteCond %{HTTP_HOST} mydomain.com$ [NC] 
# RewriteCond %{HTTP_HOST} !cosa 
# RewriteCond %{HTTP_HOST} !schools 
# RewriteRule ^(.*)$ http://mydomain.com/cosa/$1 [R=301,L] 

在上面,我在我的网站转移到新的文件夹,名为COSA,我想重定向所有链接,但不

我把两个“学校”!声明一为cosa本身,以避免页面重定向本身和其他文件夹称为学校。

当我运行它,就像mydomain.com/schools转发给mydomain.com/cosa/schools

我要的是

If type mydomain.com/abc shall goes to mydomain.com/cosa/abc 
If type mydomain.com/xyz shall goes to mydomain.com/cosa/xyz 
If type mydomain.com/news shall goes to mydomain.com/cosa/news 
If type mydomain.com/events shall goes to mydomain.com/cosa/events 

但当像

If type mydomain.com/schools it should be same mydomain.com/schools 
进入学校

请让我知道代码中的问题在哪里

回答

0

更改以下内容:

RewriteCond %{HTTP_HOST} !cosa 
RewriteCond %{HTTP_HOST} !schools 

到:

RewriteCond %{REQUEST_URI} !^/cosa 
RewriteCond %{REQUEST_URI} !^/schools 
+0

WOOW ...作品excatly因为我需要......你能不能也请告诉我怎么去根索引页。如果我输入www.mydomain.com,我需要访问www.mydomain.com/index.php – user3477550

+0

@ user3477550'%{REQUEST_URI}!^ /'和'%{REQUEST_URI}!^/index.php' – hjpotter92

+0

其工作方式但以前的规则是显示文件没有找到像如果类型mydomain.com/abc将去mydomain.com/cosa/abc但它显示404文件未找到。 – user3477550