Apache 和 Rewrite url 问题

发布于 2024-11-09 20:00:21 字数 310 浏览 0 评论 0原文

我在 url 重写方面遇到了一些问题,

我需要将该 url 转换

News/?a=shownews&id=53 

index.php?m=News&a=shownews&id=53

我试图实现的:

RewriteRule ^([A-Za-z0-9_]+)/\?(.+?)$ index.php?m=$1&$2 [R]

但它不起作用,你能帮我解决它吗?

i have some problems with url rewrite

i need trasform that url

News/?a=shownews&id=53 

to

index.php?m=News&a=shownews&id=53

i tried to make it:

RewriteRule ^([A-Za-z0-9_]+)/\?(.+?)$ index.php?m=$1&$2 [R]

but it dosen't work, could do you help me to fix it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

动次打次papapa 2024-11-16 20:00:21

编辑:
我收回那句话 - 显然在你的情况下可以这样做

RewriteRule ^(.+)/$ index.php?m=$1 [QSA]

EDIT:
I take that back - apparently it is possible to do this in your case

RewriteRule ^(.+)/$ index.php?m=$1 [QSA]
友谊不毕业 2024-11-16 20:00:21

Apache 无法使用 $_GET 参数来构建新 URL ;您必须更改 URL 的结构。

Apache cannot use $_GET parameters to build the new URL ; you'll have to change the structure of the URL.

戒ㄋ 2024-11-16 20:00:21

来自 Apache 的文档:

默认情况下,传递查询字符串
通过不变。但是,您可以
在替换字符串中创建 URL
包含查询字符串部分。简单地
在里面使用问号
替换字符串表明
以下文字应该是
重新注入到查询字符串中。
当您想要删除现有的
查询字符串,结束替换
仅带有问号的字符串。到
结合新旧查询字符串,使用
[QSA] 标志。

使用 [QSA] 标志,您可以重新构建您的 URL,并且现有的查询字符串参数将被附加或传递。

希望这有帮助。

From Apache's documentation:

By default, the query string is passed
through unchanged. You can, however,
create URLs in the substitution string
containing a query string part. Simply
use a question mark inside the
substitution string to indicate that
the following text should be
re-injected into the query string.
When you want to erase an existing
query string, end the substitution
string with just a question mark. To
combine new and old query strings, use
the [QSA] flag.

Using the [QSA] flag you can rebiuld your URL as you have, and the existing query string parameters will be appended, or passed through.

Hope this helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文