htaccess将www重定向到带有子文件夹的非www并隐藏.php文件扩展名

时间:2018-01-21 03:59:15

标签: php apache .htaccess redirect mod-rewrite

我一直在尝试使用.htaccess文件将www重定向到我网站的非www网址并隐藏.php文件扩展名。

目前,以下代码适用于以下情况:

  • 访问www.domain.com并被重定向到domain.com
  • 导航页面,从domain.com到domain.com/page

目前,以下代码在以下情况下工作:

  • 访问www.domain.com/page转到domain.com/domain.com/page.php
  • 访问www.domain.com/subfolder/page.php转到domain.com/domain.com/subfolder/page.php
  • 访问www.domain.com/page.php转到domain.com

这里是.htaccess文件:

DirectoryIndex /index.php

RewriteEngine on

# remove extensions
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

#www to non-www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

我可以这样做,以便www.domain.com/page重定向到domain.com/page并且有办法让它对所有子文件夹保持通用吗?

谢谢

1 个答案:

答案 0 :(得分:1)

使用此代码

RewriteCond %{HTTP_HOST} !^yourdomain\.com
RewriteRule ^(.*)$ http://yourdomain.com/$1 [R=301,L]