2016-12-03 28 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]