2016-12-03 60 views
1

我在.htaccess文件中有这样的内容来处理我的路由:“WWW”如何在我的htaccess文件中使用多个RewriteCond?

DirectoryIndex root.php 

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule . root.php [L] 

然后我想将用户重定向到我的域名与领先与此代码我SO发现:

RewriteEngine on 

RewriteCond %{HTTP_HOST} !^www\. 
RewriteCond %{HTTPS}s on(s)|offs() 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R] 

所以我从这种情况中删除L标志和复制的代码在那里,所以,这是我现在.htaccess文件:

DirectoryIndex root.php 

RewriteEngine on 

RewriteCond %{HTTP_HOST} !^www\. 
RewriteCond %{HTTPS}s on(s)|offs() 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [NE,R] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule . root.php [L] 

不幸的是,这导致到内部服务器错误。我如何解决这个问题并使两个条件都起作用?

回答

1

你可以在你的根的.htaccess使用此代码:

DirectoryIndex root.php  
RewriteEngine on 

RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTPS}s on(s)| 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [NE,R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule !^root\.php$ root.php [L,NC]