【问题标题】:Htaccess url redirect with special symbol (=) in it?Htaccess url重定向带有特殊符号(=)吗?
【发布时间】:2016-04-13 19:29:54
【问题描述】:

我仍在尝试将基于 Joomla 的网站迁移到 WordPress 安装。我偶然发现了一个不可预见的 url 重写。 Joomla 使用分页,例如article?start=3。 WordPress 使用article/3/

很遗憾,我尝试将“?start=3”重写为“/3”/ 失败了。任何人都可以弄清楚语法吗??? = 似乎打破了它。

编辑:我将添加当前流程的示例。

1) 传入网址

http://www.domain.com/nl/tips/160-ziggo-storing-oplossen-dns-server-aanpassen?start=2

2) 移动到子域

http://nl.domain.com/tips/160-ziggo-storing-oplossen-dns-server-aanpassen?start=2

3) 新标题

http://nl.domain.com/tips/ziggo-storing-oplossen-dns-server-aanpassen?start=2

所需的网址

http://nl.domain.com/tips/160-ziggo-storing-oplossen-dns-server-aanpassen/2/

最后一步是我卡住的那一步。

www 上的当前 htaccess:

RewriteEngine On
RewriteBase / 
RewriteCond %{HTTP_HOST} !^nl\.domain\.com$ [NC] 
RewriteRule ^(nl)/(.*)$ http://$1.domain.com/$2 [L,R=301]

nl 上的当前 htaccess:

RewriteEngine On
RewriteBase / 
redirect 301 /uitleg/processor/91-de-processor-zoveel-cores-heeft-u-daar-iets-aan /inside/processor-uitleg/de-processor-een-processor-is-meer-dan-een-processor/
(493 lines of redirects)

【问题讨论】:

  • 你能把htaccess贴在这里吗....比我可以检查一下...
  • 所以你基本上是在规则本身中检查?start=3。你没有使用QUERY_STRING 条件。
  • 我在问题中添加了更多信息和当前的 htaccess。在发布此问题之前,我根据我的有限知识搜索“start=3”所做的实验已经被删除,因为我尝试的所有版本都生成了错误 500。

标签: wordpress .htaccess mod-rewrite joomla


【解决方案1】:

你可以试试这个代码:

RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} start=([0-9]+)
RewriteRule ^article$ /article/%1/? [L,R=301]
  1. 我们在查询字符串中搜索start 值。
  2. 我们检查我们是否在article 页面上。
  3. 我们重定向到 wordpress url 并通过添加 ? 来删除查询参数

这些链接可能会对您有所帮助:

【讨论】:

  • 您好。谢谢你的建议。我认为这是一个很好的起点,但我需要更多的灵活性,而不是在其中对单词 article 进行硬编码(就像示例对单词 page 所做的那样)。这是一个示例网址:http://www.domain.com/nl/tips/160-ziggo-storing-oplossen-dns-server-aanpassen?start=1。可以有不同的类别,并且该 url 的某些部分也会在 htaccess 文件的其他地方被重写。这个可以吗?
猜你喜欢
  • 2019-01-05
  • 1970-01-01
  • 2018-05-12
  • 2015-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-08
  • 1970-01-01
相关资源
最近更新 更多