.htaccess使用mod_rewrite的新手问题

Mar*_*rty 13 php apache .htaccess mod-rewrite

我需要为我的网站创建SEO友好的网址.我发现我可以用它.htaccess来重写它们.所以我尝试了这个:

> http://www.domain.com/page/1/mypage
> http://www.domain.com/user/2/myuser
> http://www.domain.com/help/3/myhelp
Run Code Online (Sandbox Code Playgroud)

现在我遇到了一个常见的规则,我不理解Ant根据页面名称重定向流量:

我用:

RewriteEngine ON
RewriteRule ^(.*)$ page.php?page=$1
Run Code Online (Sandbox Code Playgroud)

然后在我的PHP中我没有正确获取页面,我得到的文件是错误的.

我怎样才能解决这个问题?

Boo*_*eus 17

这是你需要做的:

RewriteEngine On
RewriteBase /
RewriteRule ^([a-z_\-]+)/([0-9]+)/([a-z_\-]+)/?$ page.php?page=$1&id=$2&name=$3 [NC,L]
Run Code Online (Sandbox Code Playgroud)

NC(或nocase)使测试不区分大小写,A = a;

L(或最后)最后一条规则.停止重写过程,不再应用任何重写规则;

您可以在http://httpd.apache.org/docs/current/mod/mod_rewrite.html获取更多信息

  • `NC`是*无案例*,即不区分大小写.`L`是*last*,意味着如果此规则匹配,则规则处理将停止 (3认同)