隐藏带有 .htaccess 的扩展名不适用于网络解决方案


Hiding Extensions with .htaccess not working with Network Solutions

我正在与使用网络解决方案进行托管的客户合作。 我已经创建了他们的网站,以便所有.php扩展名都隐藏在 .htaccess 文件的 url 中。 我的服务器上一切正常,但是当我将其传输到网络解决方案时,链接不起作用。 他们给了我一个模糊的答案,他们的服务器对此有问题,除非我使用这些扩展名,否则它将无法正常工作。 有没有办法解决这个问题或其他更简单的方法可能有效?

以下是我尝试过的两种方法,它们在我尝试过的任何地方都有效,但Net Sol:

选项 + 多视图

重写引擎开启
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
重写规则 ^(.*)$ $1.php

以前我还面临着删除.html或.php扩展表单URL的问题。

我这里有一个解决方案

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}'s([^.]+)'.php [NC]
RewriteRule ^ %1 [R,L,NC]
## To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [L]
将上面的代码

放在.htaccess文件中,上面的代码用于.php文件。

希望对您有所帮助.. :)

我在这里找到了解决方案:Mod重写在网络解决方案服务器上不起作用。 需要添加 RewriteBase/directory/,因为我的文件在子目录中。

相关文章: