htaccess - 删除文件扩展名并强制子域名

时间:2013-02-08 18:14:55

标签: .htaccess mod-rewrite wildcard-subdomain

如果子域不在我的URL(或其“www”)中,我试图强制下划线作为子域。我昨天试图了解这个问题,这是我到目前为止所做的: -

规则#1。 删除文件扩展名 - 有效,直到我将规则2添加到.htaccess。

Options -Multiviews
RewriteBase /
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.php [L]

规则#2 如果没有自动存在子域,请使用_ eg:_.mysite.com

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

规则2有效,但是它将.php添加回文件名的末尾?

我已经尝试将“_”规则移到扩展规则之上,但它并没有什么区别。

对任何帮助都很高兴=)

1 个答案:

答案 0 :(得分:0)

要删除第二条规则的“.php”扩展名,您必须添加“.php”作为可选参数:

RewriteRule ^(.*)(\.php)|(.*)$ http://_.%{HTTP_HOST}/$1$3 [L,R=301]

这样,无论您的URI是否有“.php”,您的请求都将被重定向,而不会使用“.php”扩展名。