【问题标题】:rewriteRule for URL path not working correctlyURL 路径的 rewriteRule 无法正常工作
【发布时间】:2012-03-13 09:36:48
【问题描述】:

我需要有关 rewriteRule 遇到的 URL 问题的帮助。

我需要它做的是:example.com/en/page/page/

目前以下工作正常:example.com/en/page/

但是一旦它变成“example.com/en/page/page/”,我就会收到 404 - page not found 错误,即使该页面实际上位于服务器文件中。

这里的线索是我在 URL 的 /en/ 部分使用了一个变量(多语言系统),我似乎无法弄清楚如何让它与包含的变量一起工作。

目前,我的 .htaccess 文件中有以下 rewriteRule。

RewriteRule ^([^/]*)/([^/]*)/?$ index.php?lang=$1&uri=$2 [L]

你们中有人知道什么可能有效吗?

最好的问候,
纯粹的黑暗

【问题讨论】:

  • 问:/en/page/ 应为index.php?lang=en&uri=page/en/page/page/ 应该如何服务?据我了解应该是index.php?lang=en&uri=page/page ??
  • 索引文件中包含的 PHP 脚本使它能够根据 url 链接到的文件夹获取索引文件,但如果 url 像 @ 一样显示,它应该能够以任何一种方式列出索引987654326@ 或 /en/page/page/ 每个文件夹包含不同的索引文件。在我在 url 中包含 /en/ 之前,以下内容满足了我的需求:RewriteRule ^(.*)/?$ index.php?uri=$1 [L,QSA]

标签: .htaccess mod-rewrite


【解决方案1】:

第二个/ 后面不包含任何内容。你可以试试:

RewriteRule ^([^/]*)/(.*)$ index.php?lang=$1&uri=$2 [L]

如果还需要获取参数,可以加[QSA]

【讨论】:

  • 成功了,非常感谢您的帮助!真的很感激! :-)
猜你喜欢
  • 2016-09-17
  • 1970-01-01
  • 2015-07-20
  • 2016-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-29
相关资源
最近更新 更多