我已经在这里和其他地方查看了无数的答案,但没有找到我需要的东西......我正在使用旧的Joomla 1.5网站,而不是根据业主的具体要求使用SEF。但是我希望所有非www请求都被重写为www,除了特定的表单/支付页面。
Example:
http://domain.com/index.php?option=com_content&view=article&id=43&Itemid=11
becomes
http://www.domain.com/index.php?option=com_content&view=article&id=43&Itemid=11
except a payment page
http://domain.com/index.php?option=com_rsform&formId=3
or
http://www.domain.com/index.php?option=com_rsform&formId=3
becomes
https://domain.com/index.php?option=com_rsform&formId=3
我正在使用此代码:
RewriteEngine On
########## Begin - Redirect non-https non-www to www
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=302,L]
########## End - Redirect non-www to www
只要他们坚持我的付款页面链接,这就让我在那里,但我想要万无一失。并更好地了解如何做到这一点。我已经厌倦了一百种不同的规则 - 我正在努力学习正则表达式问题,但无法及时为我的客户提供。
我可以在任何表单上工作,因此“option = com_rsform”将始终在url中。我不知道在制作条件时是否将其视为字符串或变量..无论如何,我真的很感激建议的解决方案。
答案 0 :(得分:2)
试试这段代码:
RewriteEngine On
########## Begin - Redirect non-https non-www to www
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{QUERY_STRING} !^option=com_rsform&formId=3 [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=302,L]
########## End - Redirect non-www to www
# payment URL
RewriteCond %{HTTPS} off
RewriteCond %{QUERY_STRING} ^option=com_rsform&formId=3 [NC]
RewriteRule ^(.*)$ https://domain.com/$1 [R=302,L]