为什么重写URL时,美元符号$会忽略apache httpd.conf中的查询字符串

kwitos.lau

我已经安装了一个xampp来运行我的wordpress应用程序,现在我需要配置apache来重写url请求,我已经在httpd.conf中添加了一个部分配置,以下是代码:

RewriteEngine on
<VirtualHost _default_:80>
   RewriteCond %{REQUEST_URI} ^/([a-z_-]+)/$
   RewriteRule /([a-z0-9_-]+)/$ /test.php?app=$1
</VirtualHost>

当它工作时,结果如下

http://localhost/aaa/ ---> http://localhost/test.php?app=aaa , 

是的,这就是我想要的。但是现在我发现,当请求如http:// localhost / aaa /?p = 12时,它也已被重写

http: //localhost/aaa/?p=12 ---> http://localhost/test.php?app=aaa 

这表示$正则表达式不起作用,我很困惑。

我要的是,当请求结束"/"就像http: //localhost/xxx/它会被改写到//localhost/test.php?app=xxx,但别人不一样。

阿努巴瓦

如果您/aaa/打算重写而又不想重写,/aaa/?p=12即任何带有查询字符串的URI,则用以下内容替换您的规则:

RewriteCond %{QUERY_STRING} ^$
RewriteRule /([\w-]+)/?$ /test.php?app=$1 [L]

RewriteCond这行将确保仅在查询字符串为空时才应用RewriteRule。也是\w简写形式,[A-Za-z0-9_]因此我在其答案中替换了它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用查询字符串重写apache httpd完整url

来自分类Dev

Apache重写规则httpd-vhosts.conf

来自分类Dev

httpd.conf 中的目录是什么?

来自分类Dev

在Apache httpd中完成URL重写时,POST请求转换为GET

来自分类Dev

什么是HTTPD?

来自分类Dev

httpd.conf在GCE Apache中位于何处?

来自分类Dev

Apache无法启动-Windows中的httpd.conf

来自分类Dev

Apache 重写 URL 中的字符串 - 障碍是“?” 查询中

来自分类Dev

Apache httpd:bind:地址已在使用中

来自分类Dev

httpd中的conf、conf.d和conf.modules.d目录有什么区别?

来自分类Dev

Bitnami Wordpress httpd-vhosts.conf网址重写问题

来自分类Dev

vhosts.conf中的DocumentRoot会覆盖httpd.conf中的全局DocumentRoot

来自分类Dev

Apache URL重写查询字符串

来自分类Dev

为什么wget会忽略网址中的查询字符串?

来自分类Linux

Apache默认在哪里安装httpd.conf?

来自分类Dev

如何更改默认的Apache httpd.conf文件位置

来自分类Dev

apache的httpd.conf DocumentRoot->可移动媒体

来自分类Dev

使用 Apache httpd.conf 文件的 Docker 卷权限

来自分类Dev

httpd.conf 新文件位置 -apache2

来自分类Dev

HTTP错误403-每次我在httpd.conf中启用#include conf / extra / httpd-vhosts.conf行。有什么建议吗?

来自分类Dev

URL查询字符串中的逗号

来自分类Dev

原始的 httpd-vhosts.conf 是什么样的?

来自分类Dev

Apache httpd日志记录

来自分类Dev

apache httpd指定CipherSuite

来自分类Dev

如何重写查询字符串以在 URL 中散列?

来自分类Dev

如何更改在DOCKER容器中运行的Apache的httpd.conf并重新启动apache

来自分类Dev

httpd中的SSLCACertificatePath

来自分类Dev

从 Docker 容器中的 Apache2 中提取 httpd.conf

来自分类Dev

如何在Apache httpd.conf中添加注释而不是完整的行?

Related 相关文章

  1. 1

    用查询字符串重写apache httpd完整url

  2. 2

    Apache重写规则httpd-vhosts.conf

  3. 3

    httpd.conf 中的目录是什么?

  4. 4

    在Apache httpd中完成URL重写时,POST请求转换为GET

  5. 5

    什么是HTTPD?

  6. 6

    httpd.conf在GCE Apache中位于何处?

  7. 7

    Apache无法启动-Windows中的httpd.conf

  8. 8

    Apache 重写 URL 中的字符串 - 障碍是“?” 查询中

  9. 9

    Apache httpd:bind:地址已在使用中

  10. 10

    httpd中的conf、conf.d和conf.modules.d目录有什么区别?

  11. 11

    Bitnami Wordpress httpd-vhosts.conf网址重写问题

  12. 12

    vhosts.conf中的DocumentRoot会覆盖httpd.conf中的全局DocumentRoot

  13. 13

    Apache URL重写查询字符串

  14. 14

    为什么wget会忽略网址中的查询字符串?

  15. 15

    Apache默认在哪里安装httpd.conf?

  16. 16

    如何更改默认的Apache httpd.conf文件位置

  17. 17

    apache的httpd.conf DocumentRoot->可移动媒体

  18. 18

    使用 Apache httpd.conf 文件的 Docker 卷权限

  19. 19

    httpd.conf 新文件位置 -apache2

  20. 20

    HTTP错误403-每次我在httpd.conf中启用#include conf / extra / httpd-vhosts.conf行。有什么建议吗?

  21. 21

    URL查询字符串中的逗号

  22. 22

    原始的 httpd-vhosts.conf 是什么样的?

  23. 23

    Apache httpd日志记录

  24. 24

    apache httpd指定CipherSuite

  25. 25

    如何重写查询字符串以在 URL 中散列?

  26. 26

    如何更改在DOCKER容器中运行的Apache的httpd.conf并重新启动apache

  27. 27

    httpd中的SSLCACertificatePath

  28. 28

    从 Docker 容器中的 Apache2 中提取 httpd.conf

  29. 29

    如何在Apache httpd.conf中添加注释而不是完整的行?

热门标签

归档