【问题标题】:special characters match in htaccess redirect .com?htaccess 重定向.com 中的特殊字符匹配?
【发布时间】:2012-06-29 12:48:43
【问题描述】:

我试图以这样的格式创建一个对 SEO 友好的 url

http://web_url/news/**news_title**/**newsid**

被重定向到

http://web_url/index.php?t=news&newsid=newsid

我写了以下 .htaccess 规则,但只要 url 格式没有特殊字符,它就会失败,但是一旦 url 中存在特殊字符,它就会失败

eg. http://web_url/news/mywebsite.com is live!/4

这是我的规则:

RewriteRule ^news/([a-zA-Z0-9_-]+)/([0-9]+)$ index.php?t=news&newsid=$2

RewriteRule ^news/([a-zA-Z0-9_-]+)/([0-9]+)/$ index.php?t=news&newsid=$2

任何帮助将不胜感激

【问题讨论】:

  • 喜欢什么样的特殊字符?您的表达式只允许使用连字符或下划线。
  • 另外请澄清一下,您希望它在没有特殊字符时工作,否则会失败,但目前一切都失败了?您还可以通过将最后一个 / 设为可选并在末尾添加 /? 来组合这两个规则。

标签: apache .htaccess mod-rewrite


【解决方案1】:

随便用

RewriteRule ^news/([^/]+)/([0-9]+)/?$ index.php?t=news&newsid=$2

而不是两个规则。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 2018-02-07
    • 2019-01-05
    • 2016-01-28
    • 2018-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多