这是我的网站目前的htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !^(article/?).*$
RewriteRule ^article/?(.*)$ article.php?$1 [L, QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !^(info/?).*$
RewriteRule ^info/?(.*)$ info.php?$1 [L, QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !^(admin/?).*$
RewriteRule ^admin/?(.*)$ admin.php?$1 [L, QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L, QSA]
# Force to SSL
RewriteCond %{HTTP:HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301, L]
# Force to WWW
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301, L]
如果该高速缓存在浏览器上被清空,我试图加载“rotak.ro/article/rain“,它会重定向到“https://rotak.ro/article/rain“,因此我无法加载外部php css和java文件,因为缺少www。如果我加载“rotak.ro”,它会正确地将www添加到url的开头。
我假设WWW的RewriteCond在url中有多个斜杠的情况下无法确认,但我不明白错误的地方在哪里。
我想写每个网址,所以rotak.ro/article/rain或rotak.ro/info/cookies重定向到https://wwww.rotak.ro/ ...
我应该如何着手解决此问题?
1条答案
按热度按时间7d7tgy0s1#
按以下方式创建htaccess规则文件。你需要改变重定向和www实现规则的顺序。这样我们就不需要为你的内部重写设置多个规则,这些规则可以在一个规则集中处理。
请确保在测试URL之前清除浏览器缓存。
***注意:***当我们在www规则中放置重定向301时,它会影响内部规则,因此我们必须将其删除。即使是OP内部重写也无法与OP的尝试一起工作。