使用.htaccess从友好URL重定向到实际文件

时间:2010-06-01 20:56:40

标签: apache .htaccess mod-rewrite url-rewriting

我的.htaccess中有以下RewriteRule,可以从友好的URL重定向到我的主应用程序文件:

RewriteRule ^\/(.*).html$ home/www/page.php?p=$1 [L]

这应该将指向html页面的任何url发送到page.php,并将url作为将由应用解析的参数。 这适用于看起来像http://www.example.com/hello.html

的网址

问题是,当网址包含目录路径时,我收到404错误,例如:http://www.example.com/category/hello.html

错误内容为:“文件不存在:/ home / www / category”

似乎它首先寻找'类别'路径而不是处理.htaccess 任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您是否尝试从重写规则中删除初始\/

我刚刚尝试了以下.htaccess文件:

RewriteEngine On
RewriteRule ^(.*)\.html$ page.php?p=$1 [L]

将此作为我的page.php

<?php print_r($_GET); ?>

当我去/category/hello.html时,我得到以下内容:

Array ( [p] => category/hello )

完全符合预期。

另请注意,您需要在.之前转义html,因为您可能不希望/category/hellozhtml工作。