希望有人可以帮助我,因为我完全吮吸.htaccess调整。
我正在开发一个基于php的网站。在此网站上,我根据查询字符串
包含特定页面例如: index.php?q = somePage。
在.htaccess中,我查找例如: / somepage / 并告诉服务器加载 q = somePage 。完成此操作后,服务器会从url ergo中删除所有其他查询字符串,但它不会传递它们。
现在问题是,是否有人设置.htaccess来捕获 [q] 参数并传递所有其他查询字符串(服务器端)?
例如:如果我拨打 / somepage& parameter = someparameter 或 / somepage /& parameter = someparameter ,服务器会将网址重写为 / somepage / 但是像这样调用页面(serverside):
的index.php Q = SomePage的&安培;参数= someparameter
以下是我的htaccess现在的样子:
Options +SymLinksIfOwnerMatch
RewriteEngine on
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?q=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?q=$1
如果不是,我想我只需将参数存储在会话中并以这种方式传递。但我希望有人可以提供帮助:)
PS:如果你知道一本关于htaccess的书,可以把我从完整的n00b带到专家那里,如果你能指出我正确的方向,那将是史诗般的。 regEx实际上也是如此;)
答案 0 :(得分:0)
通常很多框架移动解析请求的逻辑 里面 PHP
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?*$ index.php/$1 [L,QSA]
如果URL未标识文件或e dir,请将其传递给index.php
EDIT 您可以看到http://www.zytrax.com/tech/web/regex.htm有关regexp的介绍,但建议htaccess将所有参数传递给索引PHP。
使用 phpinfo(); 查看PHP如何看待您的请求
根据您的要求 index.php
<?php
phpinfo();
这里有一些你可以尝试的查询(我想你的代码是localhost的根目录):
http://localhost/
http://localhost/test
http://localhost/a/b
http://localhost/?p1=v1&p2&v2&p3&p4
http://localhost/a/b?p1=v1&p2&v2&p3&p4
http://localhost/a/b/?p1=v1&p2&v2&p3&p4