2013-06-05 71 views
0

我想举例www.mydomain.com/about.php为www.mydomain.com/about。.htaccess rewrite = 404页面

基于一些博客阅读,

在这里我有什么对我的httpd.conf

<Directory "var/www/mydomain"> 
Options Indexes FollowSymLinks Includes ExecCGI 
AllowOverride All 
Allow from all 
Order allow, deny 
RewriteEngine On 
</Directory> 

我的.htaccess文件

Order deny,allow 
DirectoryIndex index.php 

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^([^/]+)/$ $1.php 
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule (.*)$ /$1/ [R=301,L] 

www.mydomain.com/about.php仍然有效,但/ about有404 URL未找到页面。

上述配置有问题吗?

回答

0

在你的最后一行,尝试:

RewriteRule ^(.*)$  $1.php [L] 

(注意^和去除R = 301)

如果它不工作,尝试在.htaccess文件删除所有以前行。只保留RewriteEngine On

+0

P两次尝试均显示404个URL未找到页面。 – hangee

+0

对不起,我编辑了代码。再试一次 –

+0

仍显示404页面。 – hangee

0

您的前两个RewriteRules要求在名称后面有一个/作为最后一个字符。您可能想要使该选项成为可能:

RewriteRule ^([^/]+)/?$ $1.php 
RewriteRule ^([^/]+)/([^/]+)/?$ /$1/$2.php 

这可能是您在第一个重写组中不匹配/ about的原因。我认为你正在尝试在第二个重写组中做一些不同的事情,但是不清楚什么(提示:对你做的事情的评论或者两个是相当有帮助的)。