【发布时间】:2013-12-06 11:49:33
【问题描述】:
有 4 条重写规则,但只有前 2 条有效:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^news/article/([^/]+)$ /path/to/news/?id=$1
RewriteRule ^news/page/([^/]+)$ /path/to/news/?page=$1
RewriteRule ^company/careers/id/([^/]+)$ /path/to/company/careers.php?id=$1
RewriteRule ^company/careers/page/([^/]+)$ /path/to/company/careers.php?page=$1
/path/to 对所有人总是一样的。两条news 规则完美运行,但两条company 规则却不行。
这里有什么问题?
编辑添加(通过 cmets):
这就是 4 个 URL 的样子。
http://domain.com/folder/folder2/news/article/1
=> 正确转换为http://domain.com/folder/folder2/news/?id=1
http://domain.com/folder/folder2/news/page/2
=> 正确转换为http://domain.com/folder/folder2/news/?page=2
http://domain.com/folder/folder2/company/careers/id/1
=> 应该翻译成http://domain.com/folder/folder2/company/careers.php?id=1,但不是
http://domain.com/folder/folder2/company/careers/page/2
=> 应该翻译成http://domain.com/folder/folder2/company/careers.php?page=2,但不是
.htaccess 文件位于http://domain.com/folder/folder2/.htaccess。
【问题讨论】:
标签: regex apache .htaccess mod-rewrite