【问题标题】:adding fake foders to using with apache mod_rewrite添加假饲料以与 apache mod_rewrite 一起使用
【发布时间】:2016-07-25 11:43:14
【问题描述】:

我想重写

http://site.tld/fake1/fake2/page?options

http://site.tld/page?options

基本上所有东西都在最后一个斜线之后,所以事先不知道任何假饲料名称

【问题讨论】:

  • 尽管你的问题太宽泛了,但这也是一个糟糕的想法,因为它会导致重复的内容,这在 seo 方面非常糟糕
  • tnx @JustinIurman 指出了这一点,但是由于我要创建指向页面的链接而不重复(pear.php 将始终链接为 fruits/pear.php),搜索引擎怎么能发明其他链接?我相信我也可以使用元规范 url 来解决这个问题 ..
  • 就这样吧。你可以看看我的回答

标签: regex apache mod-rewrite seo


【解决方案1】:

您可以使用捕获组并替换如下。

正则表达式: ^(.*\.tld\/).*?([^\/]*$)$

说明:

  • ^(.*\.tld\/) 匹配开始部分直到域名。

  • .*? 匹配 fake1/fake2/

  • ([^\/]*$)$ 匹配 URL 的后半部分。

替换做:替换为反向引用组\1\2

Regex101 Demo

【讨论】:

  • 正则表达式没问题,但不能让它在 mod-rewrite 中工作:不符合规则(我还检查了link,你有什么提示吗?你也管理了域,但是在里面没有必要的虚拟主机,或者您需要一些锚点才能在正则表达式中工作?
【解决方案2】:

首先,确保您已在 Apache 配置文件中启用 mod_rewrite 并允许 htaccess

然后,将此代码放入您的 htaccess 中

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.+?/([^/]+)$ /$1 [L,QSA]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-16
    • 2017-10-20
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    • 1970-01-01
    • 2011-03-06
    • 1970-01-01
    相关资源
    最近更新 更多