Apache 使用.htaccess文件重写url

Apache 使用.htaccess文件重写url,apache,.htaccess,url-rewriting,Apache,.htaccess,Url Rewriting,我想在指定的url中添加https RewriteEngine On RewriteCond %{HTTPS} !=on RewriteCond %{HTTP_HOST} ^magsonwink.winkplatform.com/Shopping/paynow RewriteRule ^(.*)$ https://magsonwink.winkplatform.com/Shopping/paynow%{REQUEST_URI} [QSA,R=301,L] 但这对我不起作用。在谷歌搜

我想在指定的url中添加https

 RewriteEngine On
 RewriteCond %{HTTPS} !=on
 RewriteCond %{HTTP_HOST} ^magsonwink.winkplatform.com/Shopping/paynow
 RewriteRule ^(.*)$ https://magsonwink.winkplatform.com/Shopping/paynow%{REQUEST_URI} [QSA,R=301,L]  
但这对我不起作用。在谷歌搜索之后,我无法得到一个明确的答案。如果有人知道这件事,请帮助我


提前感谢。

变量
%{HTTP\u HOST}
只是主机名,里面没有URL路径信息。因此,您需要删除它并将其添加到规则中的模式中:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^magsonwink.winkplatform.com$ [NC]
RewriteRule ^/?Shopping/paynow(.*)$ https://magsonwink.winkplatform.com/Shopping/paynow$1 [QSA,R=301,L]  

以下是更正后的代码:

通过
httpd.conf
启用mod_rewrite和.htaccess,然后将此代码放入
文档根目录下的
.htaccess

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On

RewriteCond %{HTTPS}s on(s)|
RewriteCond %{HTTP_HOST} ^magsonwink\.winkplatform\.com$ [NC]
RewriteRule ^Shopping/paynow(?:/.*|)$ http%1://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L]  
  • 以上代码将同时适用于HTTP和HTTPS
  • 不需要使用QSA标志,因为您没有修改查询字符串