【发布时间】:2013-11-12 23:00:26
【问题描述】:
我们需要在 htaccess 上创建一个规则,该规则将根据 url 重定向页面。如果路径或 url 的最后一部分只有字母或数字,没有下划线、点、斜线或破折号,我们希望使用找到的字符串并将其作为参数发送到另一个 php 页面,该页面将决定如何使用它。
类似这样的:
假设/^([^\.,\-,\_,\/]+) 表示除'.', '-', '_', '/' and spaces 之外的所有内容
RewriteRule /^([^\.,\-,\_,\/]+)$ handler.php?alias=$1 [L]
其中 $1 将给我们一个仅包含字母和数字的字符串。
例如:
mysite.com/someone = handler.php?alias=someone
和
mysite.com/styles.css or mysite.com/images/logo.jpg or mysite.com/page_2, etc
不会被重定向。
我真的迷失了正则表达式。有任何想法吗? 谢谢!
【问题讨论】:
-
^表示主题的开始。但是您甚至在此之前就期待/;这是行不通的。此外,如果您只查找字母和数字,请使用\w而不是否定的 charclass。 -
\w不包含空格,而他的表达式包含。 -
也不应考虑空格!好点@JohannesH。谢谢,我会更新问题。
-
这或多或少有点反问 - 网址中不应出现空格。
-
有人能解释一下反对票吗,我想改进我将来提出问题的方式,谢谢。