在周末的大部分时间里,我一直在努力解决 .htaccess 问题,但我一直在跌跌撞撞;我可以让服务器使用一组规则,但一次不能超过一个。
我的应用程序由几个页面组成:
- 主页从详细信息页面中提取内容(以及详细信息页面不包含的内容),并带有可选的查询字符串参数;例如
?s=item-name
- 详细信息页面使用可选的查询字符串参数(与主页相同的参数;例如
?s=item-name
- 这将引用完全相同的内容)引入内容 - 收藏页面
- A 相关页面
这些页面中的每一个都是文档根目录中的一个 php 文件(index.php、detail.php、collection.php、相关 php)。
我想达到的目标:
- 用户应该能够转到
mydomain.com/detail/
或mydomain.com/detail
(因此允许尾部斜杠)而不是mydomain.com/details.php
- 如果存在,则查询字符串参数 (
?s=item-name
) 应在页面的尾部斜杠之后输入(因此mydomain.com/item-name
而不是mydomain.com/?s=item-name
;mydomain.com/detail/item-name
而不是mydomain.com/detail.php?s=item-name
。所有页面都是这种情况,因此一次在一页上设置规则似乎相当麻烦......
这是我的 .htaccess 文件目前的样子,经过多次摆弄:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?s=$1 [L]
</IfModule>
这允许主页引入正确的内容,我相信它不会太远,允许任何页面做同样的事情,但我不能完全理解它。
任何人都可以帮忙吗?