我有一个根域,我删除了.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]
感谢您提供的任何帮助!
答案 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一样