我已经安装了一个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] 删除。
我来说两句