htaccess删除域和子域的文件扩展名(例如example.com和test.example.com)

时间:2013-08-18 10:07:44

标签: php apache .htaccess

我有一个根域www.example.com和一个子域test.example.com。我正在尝试删除文件扩展名 - 到目前为止,我可以删除根域的文件扩展名但不删除子域 - 它会抛出404未找到的错误。下面是根文件夹中的.htaccess代码:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]

例如,我可以输入www.example.com/page并显示www.example.com/page.php,但如果我输入test.example.com/some-page,则返回404 - 我需要在test.example.com/some-page.php中键入要显示的页面。

我还想重定向所有www。要求非www。域:

www.example.com - > example.com www.test.example.com - > test.example.com

1 个答案:

答案 0 :(得分:0)

您需要在您的域中设置wildcard。如果没有设置,则需要将.htaccess放在每个子域文件夹中。

将“www”重写为非www地址的规则:

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