繁体   English   中英

斜杠后的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上执行此操作:

细节:

  • RewriteEngine on:打开重写引擎。 记住要加载重写模块( LoadModule rewrite_module modules/mod_rewrite.so
  • RewriteCond:变量%{QUERY_STRING}包含Apache之后收到的所有内容? 我将此匹配为val=(.+) . 匹配任何内容, +表示“前面的一个或多个”。 前面是. ,因此任何字符组合都是有效的。 放在括号中,因为以后我将需要该匹配的组。
  • RewriteRule: "(.*)"匹配http://localhost/之后的任何内容。 它被%1代替,此处包含上面RewriteCond括号中的内容。 那我加了? 确保未添加查询字符串。

注意? 默认情况下,如果您从.../somepage.html?var1=value1重写为.../somepage2.html ,则重写引擎将在其末尾自动添加?var1=value1 要重写而不保留查询字符串,请添加一个? 在末尾。

  • L:如果以后有其他规则,则表明这是最后一个要考虑是否匹配的规则。
  • R = 302。 在这里,我返回了302,暂时移动了。 如果您希望重定向是永久的,则将R = 301。

暂无
暂无

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

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