我的网站(website.com)位于目录:public_html / dirName /
我试图:
我想出了第一个条件:
RewriteCond %{REQUEST_URI} !^/dirName/.*$
RewriteRule ^(.*)$ /dirName/$1 [L]
我发现了这段代码用于https:
RewriteCond %{SERVER_PORT} 80
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
但我无法弄清楚如何将它们混合在一起。
现在,我有https://www.website.com工作。但是website.com,www.website.com或http://www.website.com将所有内容重定向到https://www.website.com/dirName
答案 0 :(得分:0)
我没有混合它们,但它的工作原理如下:
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\.website\.com$ [NC]
RewriteRule ^(.*)$ http://www.website.com/$1 [R=301,L]
RewriteCond %{REQUEST_URI} !^/dirName/.*$
RewriteRule ^(.*)$ /dirName/$1 [L]
答案 1 :(得分:0)
您可以使用(混合版本):
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\. [OR,NC]
RewriteCond %{HTTPS} off
RewriteRule ^ https://www.website.com%{REQUEST_URI} [NE,R=301,L]
RewriteRule ^((?!dirName/).*)$ /dirName/$1 [L]
因为您在重定向到https(仅一次重定向)后不应重定向到www。甚至更少重定向到http://www
(而不是https)
答案 2 :(得分:0)
如克鲁斯所说
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\. [OR,NC]
RewriteCond %{HTTPS} off
RewriteRule ^ https://www.domainname.in%{REQUEST_URI} [NE,R=301,L]
但是我删除了最后一行RewriteRule ^((?!dirName/).*)$ /dirName/$1 [L]
=>给内部服务器报错。现在,它对我来说非常完美。