2014-10-10 113 views
2

我正在使用這段代碼刪除文件擴展名並添加尾部斜槓。強制WWW並確保文件擴展名隱藏在HTACCESS中

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/$ $1.php 
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule (.*)$ /$1/ [R=301,L] 

我有這塊代碼強制「www」。

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

我想要做的是將兩個語句連接在一起,以便它們同時執行兩個操作。任何幫助?

回答

0

重新安排你的規則是這樣的:

RewriteEngine On 

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

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule (.*)$ /$1/ [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/$ $1.php [L] 

RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php [L] 
+0

只是可以肯定,這將仍然更改協議爲「https://」,如果SSL已打開? – ThisBoyPerforms 2014-10-10 20:51:16

+0

是的,它會這樣做,測試它。 – anubhava 2014-10-10 20:53:16

相關問題