0

我打算从我的网页地址中删除文件名或扩展名。有一些解决方案可以做到这一点(.htaccess),但我的 .htaccess 文件是空的。我想知道我该怎么做?转这个:

http://www.example.com/page.php

进入这个:

http://www.example.com/page

谢谢阅读。

4

2 回答 2

0

确保在您的主配置文件中启用了 mod_rewrite 并且该FollowSymLinks选项已启用,并且您重新启动 Apache 以使这些更改生效。然后将以下内容添加到 www-root 中的 .htaccess 文件中:

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

第一个条件将确保您的 url 尚未以 php 结尾。如果是这样,那么添加 php 是没有意义的,现在是吗?第二个条件检查请求的文件是否不存在。如果它存在,我们希望显示现有文件:例如图像、css 或 js 文件。最后一行在内部重写为后面带有 .php 的文件。

于 2014-08-05T12:48:21.067 回答
0

假设 page.php 确实存在于您的根文件夹中,作为物理文件,那么您可以使用:

RewriteEngine On
RewriteRule ^([^\.]+)$ $1.php [NC,L]

如果 page.php 不存在,但它是重写规则的产物,您可以使用类似:

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

这两个额外的规则说明了一些事情:如果浏览器中的文件不存在并且它不是现有文件夹,则继续重写。

您需要更改您网站中的链接,才能使上述规则生效。就像是:

<a href="http://www.example.com/page">Some fancy page</a>
于 2014-08-05T12:45:35.627 回答