Apache2:重写规则不起作用



我正在为这些重写规则而苦苦挣扎。无论我尝试什么,它们都不起作用。

模块已加载,类似这样

RewriteRule ^(application) - [F,L]

像这样的事情可以完美地工作:

RewriteRule ^board/([A-Za-z0-9]+)/([^.]+)$ board.php?id=$1

哪个应该使板.php?b=XYZ到板/XYZ

无论我搜索什么,都不适合我。

目前尚不清楚当前的行为是什么,尽管匹配b=是错误的查询字符串:

board.php?id=$1

问题是id != b — 它应该是:

board.php?b=$1

所以你可以做:

RewriteEngine On
RewriteRule ^([^/]*)$ /?b=$1 [L]

你的规则很好,但你正在使用的正则表达式模式测试了 uri 是错误的。

如果要将/

board/XYZ 重写为/board.php?b=XYZ,可以在 root/.htaccess 中使用以下规则

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^board/(.+)$ /board.php?b=$1 [L,NC]

最新更新