我要从我的网页地址中删除文件名或扩展名。有一些解决方案这样做(.htaccess),但我的。htaccess文件是空的。我想知道我该怎么做?转:
http://www.example.com/page.php
这:
http://www.example.com/page
假设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>
确保在主配置文件中启用了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。