【发布时间】:2015-06-25 23:29:06
【问题描述】:
我正在使用 Slim 构建一个网站,它建议使用以下 .htaccess 代码来创建漂亮的 URL:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
这意味着像 http://example.com/account/login 这样的 URL 将为 http://example.com/index.php/account/login别名,然后由我的前端控制器处理。到目前为止一切顺利。
但是,如果有人明确导航到
http://example.com/index.php/account/login,
我希望它首先重定向到:
http://example.com/account/login,
和 然后
的别名http://example.com/index.php/account/login。
这样,用户将在他们的导航栏中看到http://example.com/account/login。
如何在.htaccess 中同时处理这两个规则,最重要的是,无需在.htaccess 中对主机和域 (http://example.com) 进行硬编码?
这也应该在子目录中工作,例如:
http://example.com/site1/index.php/account/login ->
http://example.com/site1/account/login
.htaccess 文件位于相对于文档根目录的site1 目录中,并且无需将site1 显式放入.htaccess。
【问题讨论】:
标签: php .htaccess mod-rewrite redirect slim