【发布时间】:2016-07-10 00:59:30
【问题描述】:
在指定的 url (service/scripts/) 路径上的 htaccess 重写存在问题。如果路径包含“service/scripts 并且只需使用 http 打开链接”,我不喜欢重定向。所有其他链接应重定向到 https。我正在使用 Codeigniter 框架。我已经尝试了以下代码 TRY1 和 TRY2:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule ^(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ $1.$3 [L]
RewriteCond $1 !^(index\.php|(.*)\.swf|assets|service/*|robots\.txt)
RewriteRule ^(.*)$ index.php?/$1 [L]
Header add Access-Control-Allow-Origin "https://url.info/"
<IfModule mod_rewrite.c>
# TURN SSL ON
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.url.info/$1 [R,L]
# TRY 1
#RewriteCond %{HTTPS} on
#RewriteCond %{REQUEST_URI} ^/service.*
#RewriteRule ^(.*)$ http://www.url.info/$1 [R=301,L]
#RewriteCond %{HTTPS} off
#RewriteCond %{REQUEST_URI} !^/service.*
#RewriteRule ^(.*)$ https://www.url.info/$1 [R=301,L]
# TRY 2
#RewriteCond %{HTTPS} on
#RewriteCond %{REQUEST_URI} ^/service/scripts/?.*$
#RewriteRule ^(.*)$ http://www.url.info/$1 [R=301,L]
#RewriteCond %{HTTPS} off
#RewriteCond %{REQUEST_URI} !^/service/scripts/?.*$
#RewriteRule ^(.*)$ https://www.url.info/$1 [R=301,L]
# Removes index.php RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
# If 404s, "No Input File" or every URL returns the same thing
# make it /index.php?/$1 above (add the question mark)
</IfModule>
它总是像 RewriteCond %{REQUEST_URI} !^/service.* 一样重定向,没有触发或第二个 RewriteCond 覆盖它...
请问有人可以帮我吗? 最好的祝福, 戴夫
【问题讨论】:
标签: .htaccess codeigniter mod-rewrite https rewrite