如何在 htaccess 中编写正确的重写规则?

How can a write correct rewrite rules in htaccess?

我一直在使用 htaccess 文件创建重写,这样就不必在我的网址中包含 .php/.html 文件名。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example-page.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.example-page.com
    

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule   /front    /front_page.php

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule   /redirect    /redirect-page.php

然而,由于我的代码目前正在编写,因此重定向无法正常工作,并且所有试图用文件名以外的任何其他内容加载页面的尝试都会给我一个 404 错误。我该如何修复我的代码才能使重定向正常工作?

改为像这样编写指令:

RewriteEngine on

RewriteRule ^front$ /front_page.php [L]

RewriteRule ^redirect$ /redirect-page.php [L]

似乎不​​需要所有额外的条件?我假设您只有一个域 example-page.com 而您没有名为 /front 等的文件

.htaccess 中,与 RewriteRule 模式 匹配的 URL 路径不以斜杠开头。您还应该在正则表达式中包含 start/end-of-string 锚点,这样您就只能完全匹配 front 而不会在 URL 路径中的 anywhere 匹配它。