2

这个问题有两个部分:

  1. 我使用 htaccess rewrite 将“file.php”更改为“file”,因此http://www.example.com/file就像http://www.example.com/file.php一样工作

这是我的 .htaccess 处理该问题的一部分:

    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule (.+) /$1.php [L]
  1. 第二部分是目录问题:

这是我处理该问题的 .htaccess 的一部分:

    RewriteRule ^register website/register

    RewriteRule ^register/rules website/rules

我想要完成的是:

http://www.example.com/register使用重写规则显示网站/注册 http://www.example.com/register/rules使用重写规则显示网站/规则

问题是 URL 框显示 example.com/register/rules 但页面继续显示 example.com/register 的内容。

这里出了什么问题?是“.php”扩展名是导致这一切的第一部分吗?还是我的 htaccess 完全错误?

4

1 回答 1

1

什么都没有发生。URL 框显示 example.com/register/rules 但页面继续显示 example.com/register 的内容

发生这种情况是因为你没有限制规则,你有这个:

RewriteRule ^register website/register

RewriteRule ^register/rules website/rules

第二条规则永远不会被应用,因为 URI/register/rules匹配第一条规则的正则表达式(^register,意思是“URI以”开头register)。添加结束边界:

RewriteRule ^register/?$ website/register [L]

RewriteRule ^register/rules/?$ website/rules [L]

或交换它们:

RewriteRule ^register/rules website/rules [L]

RewriteRule ^register website/register [L]

虽然你需要[L]国旗。

于 2012-09-24T01:10:23.890 回答