Php 不带GET的URL参数

Php 不带GET的URL参数,php,jsp,Php,Jsp,我想知道如何使系统从url读取参数,而不必使用php或jsp。 例如:www.example.com/action/logout/与www.example.com?action=logout相同 谢谢。标准且流行的方法是使用.htaccess文件。您应该学习如何为此使用.htaccess重写规则。它应该是这样的: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)/([^/]+)(/.*)?$ $3

我想知道如何使系统从url读取参数,而不必使用php或jsp。 例如:
www.example.com/action/logout/
www.example.com?action=logout
相同


谢谢。

标准且流行的方法是使用.htaccess文件。您应该学习如何为此使用.htaccess重写规则。它应该是这样的:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)(/.*)?$ $3?$1=$2 [N,QSA]
RewriteRule ^(/[^/]+|[^/]+/|/?)$ /index.php [L,QSA]

这将在Apache级别运行,这可能是您想要的。

如果您希望格式化干净的URL,建议在.htaccess文件中使用RewriteRule

RewriteEngine ON
RewriteRule ^(.*)action/([a-zA-Z0-9]+).*$ $1?action=$2
这将导致服务器进行解释

www.example.com/action/logout/ 
作为

以及

www.example.com/subdirectory/action/logout/otherstuff
作为


注意,添加的
/otherstuff
被省略,但查询被传递到子目录。您将需要使用regex来定制您选择的最终规则,从重写规则开始。您是否试图在没有GET的情况下执行此操作,或者您是在暗示您无法使用GET,因为URL是如何格式化的?我知道如何使用GET。但我认为另一种方式更干净。正如@Brad提到的,使用url重写。基础教程:
www.example.com/subdirectory/action/logout/otherstuff
www.example.com/subdirectory/?action=logout