保持根目录htaccess不重定向子域

时间:2013-07-02 22:03:21

标签: php .htaccess redirect rewrite subdomain

我有一个根域,我删除了.php扩展程序,该扩展程序现在正在干扰我的子域Wordpress平台。我无法发布任何内容,因为根域.htaccess 重定向 .php没有扩展名,所以我不断收到HTTP 404 Error。如何仅将隐藏扩展名应用于 root 而不是子域?这是我在 root 中的内容:

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

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

## don't touch /forum URIs
RewriteRule ^forums/ - [L,NC]

## hide .php extension snippet

# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1/ [R,L]

# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [L]

感谢您提供的任何帮助!

4 个答案:

答案 0 :(得分:0)

通常,当我在同一台计算机上设置多个网站时,我会将它们指向不同的目录。这使.htaccess(以及其他所有内容)分开。

答案 1 :(得分:0)

您应该能够编写RewriteCond来检查%{HTTP_HOST}子域名。如果域名以RewriteCond %{HTTP_HOST} ^www\. [NC]开头,则www.之类的内容应仅应用规则。您可以在mod_rewrite page under RewriteCond上看到重写变量列表。

答案 2 :(得分:0)

扩大AMADANON Inc.所说的内容。 。 。将.htaccess放在控制子域的目录中。 .htaccess是特定于目录的,因此只要您使用RewriteBase / directoryname,目录名就会覆盖根目录,其中directoryname是目录的名称。

答案 3 :(得分:0)

您也可以使用MultiView进行尝试 您所要做的就是在.htaccess文件中添加它

# Enable Multiviews
Options +MultiViews

现在您可以使用siteurl.com/file.php访问所有文件,与siteurl.com/file一样