【发布时间】:2014-09-19 15:55:41
【问题描述】:
我刚刚在我的 ubuntu apache 服务器上安装了 mod_rewrite 并启用了 .htaccess。 但是当我编辑 .htaccess 以从文件中删除 .php 文件扩展名时,url 不会改变。
现在我的 .htaccess 文件如下所示:
Options -Indexes
ErrorDocument 400 /blabla.php
ErrorDocument 401 /blabla.php
ErrorDocument 403 /blabla.php
ErrorDocument 404 /blabla.php
ErrorDocument 500 /blabla.php
不多,只是确保人们无法查看我的文件树并添加了一些自定义错误页面。
但是如果我在我的网站上输入一个页面,例如 href="page.php" 一切正常,但如果我从 url 栏中删除“.php”并将页面重新加载为“www.mysite.com/page”没有 .php 它仍然有效。而且我还没有在 .htaccess 文件中做任何事情,对吗?
如果我现在将以下行添加到 .htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
然后访问 href="page.php" 网址仍然显示为 "www.mysite.com/page.php" 而不是 " www.mysite.com/page"
我还需要将 href 从 href="page.php" 更改为 href="page" 吗?为了使 .php 扩展名消失。 - 因为即使我一开始不编辑 .htaccess 文件,它也可以工作。
当我编辑 .htaccess 文件时,我总是确保重新启动 apache。
提前致谢,K
【问题讨论】:
-
还要检查
mod_rewrite是否启用:sudo a2enmod rewrite
标签: php apache .htaccess mod-rewrite ubuntu