1

我知道,切换到 HTTPS 和 Yii 无关,主要是 rewrite rules.htaccess. 现在我面临一些问题。在我更改我的.htaccess文件

RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# manual change the url base
RewriteBase /

# otherwise forward it to index.php
RewriteRule . index.php 


RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://my.domain.de/$1 [R,L]


# manual change the url base
RewriteBase /

# otherwise forward it to index.php
RewriteRule . index.php

第一个登录页面会自动重定向httphttps我想要的,但是没有css加载图像。
我注意到这些文件的所有路径都是relative,所以https://my.domain.de/css/print.css找不到,但
http://my.domain.de/css/print.css可以访问。
如果我浏览网站中的链接css并且images到处都错过了。

有什么建议么?

4

1 回答 1

0

重写条件仅影响紧随其后的规则。两个!-fand!-d条件需要应用于路由规则:RewriteRule . index.php. 否则,所有内容都会盲目地被路由到index.php并且对实际存在的文件的请求将不会得到满足。

此外,重定向需要路由规则之前,因此您需要将条件移动到路由规则的正上方:

RewriteEngine on

# manual change the url base
RewriteBase /

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://my.domain.de/$1 [R,L]

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
于 2013-08-19T06:14:10.540 回答