.htaccess htaccessurl';重定向和重写
希望有人能帮我,因为我完全不擅长调整 我正在开发一个基于php的网站。在这个网站上,我根据查询字符串包含特定的页面 例如:index.php?q=somePage. 在.htaccess中,我查找例如:/somepage/,并告诉服务器加载q=somepage。完成此操作后,服务器将从url中删除所有其他查询字符串,因此不会传递它们 现在来看这个问题,是否有办法设置.htaccess以捕获[q]参数并传递所有其他查询字符串(服务器端) 例如:如果我调用/somepage¶meter=someparameter或/somepage/¶meter=someparameter,服务器将把url重写为/somepage/,但调用页面(服务器端)如下: index.php?q=somePage¶meter=someparameter 以下是我的htaccess现在的样子:.htaccess htaccessurl';重定向和重写,.htaccess,redirect,url-rewriting,.htaccess,Redirect,Url Rewriting,希望有人能帮我,因为我完全不擅长调整 我正在开发一个基于php的网站。在这个网站上,我根据查询字符串包含特定的页面 例如:index.php?q=somePage. 在.htaccess中,我查找例如:/somepage/,并告诉服务器加载q=somepage。完成此操作后,服务器将从url中删除所有其他查询字符串,因此不会传递它们 现在来看这个问题,是否有办法设置.htaccess以捕获[q]参数并传递所有其他查询字符串(服务器端) 例如:如果我调用/somepage¶meter=so
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也是如此;) 通常很多框架将解析请求的逻辑移动到PHP内部
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?*$ index.php/$1 [L,QSA]
如果URL没有标识文件或e目录,请将其传递到index.php
编辑
您可以查看regexp的介绍,但是建议htaccess将所有参数传递给索引PHP
使用phpinfo();查看PHP如何看待您的请求
根据您的要求,在这里输入index.php
<?php
phpinfo();
请适当地包装代码。它将帮助那些试图帮助你的人。在我发布后,我刚刚通知了它:)注意到了,但是包装所有代码,不仅仅是你的
.htaccess
文件。那里没有任何其他代码,但我将URL/查询字符串示例格式化为粗体,以帮助快速扫描文本:)帮助,但尝试用重音符号包装它们。(`)我知道我是一个n00b在所有这些url重写的东西。。但是你完全失去了我:)简单,在示例中设置.htacces,放置一个只有phpinfo()的index.php,执行一些查询(param1=val1¶m2&…)并查看结果。在phpinfo()页面中有很多东西,但是在所有页面中查找param1可以找到PHP和apache如何看到您的请求He我不怀疑您是一个完整的htaccess忍者,但我想了解发生了什么。因此,如果我能说服您就上述代码的作用给我写一行或两行,那将是史诗般的:)
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