我一直在尝试让我的站点 htacess 为我的文件页面提供有效的重写,但我做错了。我的目录结构非常简单。我的所有文件都在根文件夹中。到目前为止,我的 htacess 看起来像这样。
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
当我调用像“www.example-page.com/front_page.php”这样的页面时,这是有效的(因为文件位于根文件夹中,所以它无论如何都会有效)。但是重写规则不起作用,www.example-page.com/front(以及所有其他网站)都给我 404 错误。我知道这种格式可以工作,或者使用与它非常类似的格式,因为我之前在其他网站上使用过它。我很困惑。有人知道我做错了什么吗?
答案1
请像这样编写指令:
RewriteEngine on
RewriteRule ^front$ /front_page.php [L]
RewriteRule ^redirect$ /redirect-page.php [L]
似乎没有必要再增加状况? 我假设您只有一个域example-page.com
,并且没有名为/front
etc. 的文件。
在 中.htaccess
,匹配的 URL 路径RewriteRule
图案不以斜线开头。您还应该在正则表达式中包含字符串的开始/结束锚点,以便您只匹配front
完全匹配,而不匹配它任何地方在 URL 路径中。