我有基于PHP和Apache的应用程序。 如果请求的链接不是目录或文件,则所有请求都会转到index.php文件。 我想redirect所有的请求从http到https和没有www。
对我有效的链接:
从以下链接开始对我无效(对不起,我的声誉是非常小的,我不能发布更多2个链接):
我的htaccess看起来像那样
AddDefaultCharset UTF-8 RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*) index.php [L]
我可以做redirect到https和没有www?
http->http
和www
删除有另一个规则:
AddDefaultCharset UTF-8 RewriteEngine on RewriteBase / RewriteCond %{HTTPS} off [OR] RewriteCond %{HTTP_HOST} ^www\. [NC] RewriteRule ^ https://someaddress.org%{REQUEST_URI} [L,NE,R=301] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L]
您可以使用SSLRequireSSL指令覆盖http到https部分。
<Directory /> SSLRequireSSL </Directory>
如果问题是htaccess文件,而不是重写规则,则可以停止使用.htaccess文件,并将重写规则移至apache配置文件。
如果你只是不想或可以使用重写规则,并且由于绝大多数PHP应用程序需要包含在每个脚本(配置变量或用户控件作为示例)中的配置文件,您可以使用此文件来获取请求的资源,万维网。 部分如果域名以他们开头。
如果包含文件可能是您需要的解决方案,我可以提供一个php代码示例。