繁体   English   中英

Apache mod_rewrite查询字符串

[英]Apache mod_rewrite query strings

因此,我的staff.php?action=[action]文件被重写为/staff/[action] ,其中action可以采用3个值new/edit/delete

我想在提交时显示成功或失败消息。 我试图重定向到/staff/new&error=[error]/staff/new?error=[error]

但是, var_dump($_GET)仅返回action的查询字符串。

我发现的唯一解决方案是/staff?action=[action]&error=[error] ,但我不喜欢它。 有什么办法可以重写我的规则?

我不要/staff/new/error/[error]

## hide .php extension snippet
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L]
# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [L]

RewriteRule ^staff/(.+)$ /staff.php?action=$1 [L]

您可以使用QSA标志将查询字符串添加到转发的页面

RewriteRule ^staff/(new|edit|delete)$ /staff.php?action=$1 [L,QSA]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM