2

我正在尝试构建一个 htaccess 文件,该文件在空白 URI 或数字 slug(页面)上显示索引文件,例如:example.com 或 example.com/12(后面附加 ?page=$1)

但是,当访问任何非数字 slug 时,它应该转到不同的页面。出于某种原因,我无法让它命中索引文件(即使是空白或数字)。我错过了什么?

这是我所拥有的:

Options All
RewriteEngine On

RewriteRule ^([0-9]*)/?$ index.php?page=$1 [L]
RewriteRule ^([^/]+)/?$ another_page.php?slug=$1 [L]

空白 URI 或数字 URI 不应该使用 Last 标志命中第一条规则并加载 index.php 吗?我提出的每个请求都在访问 another_page.php

谢谢!

4

1 回答 1

1

啊哈,我在发布这个问题后不久就想通了。

我确实需要最后的 RewriteCond 行,但原始文件也必须存在。我在创建 index.php 文件之前设置了这个 htaccess 文件(我正在寻找 404)。

这是有效的:

Options All
RewriteEngine On

RewriteRule ^([0-9]*)/?$ index.php?page=$1 [L]

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

多谢你们!

于 2012-12-06T03:11:29.403 回答