.htccess 301重定向域名,https,www和文件扩展名

时间:2016-02-04 05:39:20

标签: php .htaccess redirect mod-rewrite

我有几个域名,最近更新了我的网站,以便从单个文件(index.php)运行。请求URI与.php不同。我的主人是GoDaddy linux无限(是的......)。

我要求我的.htaccess重定向/重写以下

  • 将domain1.com重定向到www.primary.com
  • 将www.domain1.com重定向至www.primary.com
  • 将domain2.com重定向到www.primary.com
  • 将www.domain2.com重定向至www.primary.com
  • 强制https://
  • 强制www。
  • 从任何请求中删除.php(/marketing/cost.php到/ marketing / cost)
  • 删除尾部斜杠

我目前正在使用以下代码将所有请求传递给index.php

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

index.php文件处理所有请求。基于($ _ SERVER ['REQUEST_URI']) index.php加载数据库中的内容。

我知道建议使用尾随斜杠,但是我希望保持这种斜杠;我认为domain.com/sec/nom?x=23看起来比domain.com/sec/nom/?x=23

更好

我在.htaccess我的自己尝试了一些变化,并在本地工作,但不是在GoDaddy上工作。

1 个答案:

答案 0 :(得分:0)

有这样的话:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\.primary\.com$ [NC,OR]
RewriteCond %{HTTPS} off
RewriteRule ^ https://www.primary.com%{REQUEST_URI} [L,NE,R=302]

RewriteCond %{THE_REQUEST} \s/+(.+?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=302,L]

## Unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+?)/$ /$1 [NE,R=302,L]

RewriteRule ^index\.php$ - [L,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]