![如何在 htacess 中为站点根目录中的文件编写一个简单的重写规则?](https://linux22.com/image/762797/%E5%A6%82%E4%BD%95%E5%9C%A8%20htacess%20%E4%B8%AD%E4%B8%BA%E7%AB%99%E7%82%B9%E6%A0%B9%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E6%96%87%E4%BB%B6%E7%BC%96%E5%86%99%E4%B8%80%E4%B8%AA%E7%AE%80%E5%8D%95%E7%9A%84%E9%87%8D%E5%86%99%E8%A7%84%E5%88%99%EF%BC%9F.png)
我一直在尝试让我的站点 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 路径中。