2014-10-10 124 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

相关问题