Apache 使用.htaccess文件重写url
我想在指定的url中添加httpsApache 使用.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] 但这对我不起作用。在谷歌搜
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标志,因为您没有修改查询字符串