mod_rewrite:如何更改主页以外的网址?

时间:2016-10-10 20:42:02

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

我想做以下事情:

  1. /about重定向到/about.php(隐藏扩展程序)
  2. /(anything else)重定向到/content.php?p=(anything else)
  3. 同时将根http://domain.com保持为/index.php(不显示/index.php
  4. 我试过了:

        RewriteEngine On
        RewriteBase /
        RewriteCond %{REQUEST_URI} !-d
        RewriteCond %{REQUEST_URI} !-f
        RewriteRule "^about$" about.php [NC,L]
        RewriteRule ^((/+[A-Za-z0-9\-]+/)*[A-Za-z0-9\-]+)?$ /_content.php?p=$1  [NC,L]
    

    成功实现了第1项和第2项,但这也将根http://domain.com重写为http://domain.com/_content.php?p=

    我做错了什么?谢谢你的建议!

1 个答案:

答案 0 :(得分:0)

您可以使用以下规则:

DirectoryIndex index.php
RewriteEngine On

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .+ content.php?p=$0 [QSA,L]