[英]Smarty strpos and substr to get text after last forward slash in URL
[英]Text in URL after slash as parameter
我想创建htaccess规则来将此网址: www.foo.com/?val=hello更改为: www.foo.com/hello
我创建了新规则,但是它不起作用。
RewriteRule ^([a-zA-Z0-9]+|)/?$ index.php?s=$1 [QSA]
任何想法如何做到这一点? 谢谢!
我在Apache上执行此操作:
在我的httpd.conf中,在适当的VirtualHost中,添加了以下内容:
RewriteEngine on RewriteCond %{QUERY_STRING} "val=(.+)" RewriteRule "(.*)" "%1?" [L,R=302]
如果我要求http:// localhost /?var = hello.phtml , 则会重定向到http://localhost/hello.phtml 。
细节:
LoadModule rewrite_module modules/mod_rewrite.so
) ?
。 我将此匹配为val=(.+)
。 .
匹配任何内容, +
表示“前面的一个或多个”。 前面是.
,因此任何字符组合都是有效的。 放在括号中,因为以后我将需要该匹配的组。 "(.*)"
匹配http://localhost/
之后的任何内容。 它被%1
代替,此处包含上面RewriteCond括号中的内容。 那我加了?
确保未添加查询字符串。 注意?
。 默认情况下,如果您从.../somepage.html?var1=value1
重写为.../somepage2.html
,则重写引擎将在其末尾自动添加?var1=value1
。 要重写而不保留查询字符串,请添加一个?
在末尾。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.