.htaccess URL的一部分是用户友好的,另一部分是查询
我的文件夹结构如下:.htaccess URL的一部分是用户友好的,另一部分是查询,.htaccess,url-rewriting,.htaccess,Url Rewriting,我的文件夹结构如下: - templates - search.php - page.php - index.php - index.php 这不是完整的结构,但对于这个问题已经足够了Index.php根据名为page的第一个查询,让任务包含文件。然后,通过模板类,我得到了正确的模板.htaccess如下所示: Options +FollowSymLinks RewriteEngine On RewriteRule ^([a-zA-Z0-9\-]+)$ index.p
- templates
- search.php
- page.php
- index.php
- index.php
这不是完整的结构,但对于这个问题已经足够了Index.php
根据名为page
的第一个查询,让任务包含文件。然后,通过模板类,我得到了正确的模板<此零件的code>.htaccess如下所示:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([a-zA-Z0-9\-]+)$ index.php?page=$1
现在是我无法解决的部分。我有另一个查询,带有搜索字符串
index.php?page=search&q=some+query
是一个不友好的URL示例。现在,我想让这个URL看起来像http://www.domain.com/search?q=some+查询
我尝试了RewriteRule^([a-zA-Z0-9\-]+)?q=([a-zA-Z0-9\+\%])$index.php?page=$1&q=$2
,但我在…中得到了一个未定义的索引:q
问题是,如何使第一个查询像静态页面一样,第二个查询像该页面中的查询字符串一样?在第一条规则中,您只需要一个QSA
标志:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([a-zA-Z0-9-]+)/?$ index.php?page=$1 [L,QSA]
QSA
(查询字符串附加)标志在添加新查询参数时保留现有查询参数
- 您无法匹配
RewriteRule
指令中的查询字符串
这就行了,非常感谢。在第一条规则的末尾追加[L,QSA]
有效。