【问题标题】:Htaccess rewriterule wordpress issueHtaccess重写wordpress问题
【发布时间】:2018-01-03 10:47:08
【问题描述】:

我正在尝试通过 wordpress 中的 htaccess 文件进行此重写 我有以下网址: https://domain_name.com/index.php/field/value_to_be_written 我希望它在内部重定向到: https://domain_name.com/index.php/field/?get_value=value_to_be_written

我有以下代码,但它给了我错误 500:

RewriteRule ^index.php/field/(.*)$ index.php/field/?get_value=$1 [L]

任何帮助都会很棒。提前致谢。

【问题讨论】:

  • 请格式化您的代码:)
  • 如果抛出代码为 500 的错误,您应该会在服务器日志中看到任何错误消息。您可以搜索它并将其附加到您的问题中吗?
  • @Guglie 抱歉,我是新来的。如何格式化我的代码?
  • @molinet 你可以使用 4 个空格缩进或反引号`
  • @NicoHaase 重点是当我检查我的 error_log 文件时,它没有显示任何基于此问题的错误消息。这就是为什么我开始觉得它很奇怪......

标签: php wordpress .htaccess http-status-code-500


【解决方案1】:

你只需要前导斜杠:

RewriteRule ^/index\.php/field/(.*)$ /index.php/field/?get_value=$1 [L]

摘自https://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewriterule

<!-- language: lang-none -->
+-----------------------------+------------------------+
| Given Rule                  | Resulting Substitution |
+-----------------------------+------------------------+
| ^/somepath(.*) otherpath$1  | invalid, not supported |
| ^/somepath(.*) /otherpath$1 | /otherpath/pathinfo    |
+-----------------------------+------------------------+

【讨论】:

  • 我会在回家后尝试并评论结果,但提前感谢您的时间和帮助!
  • 问起来可能很傻,但我有 "RewriteBase /" 。我还需要添加前导斜杠吗?
  • 好的,我尝试了您发布的内容,没有更多错误 500,但现在当我尝试 domain_name.com/index.php/field/value_to_be_written 时,它给了我一个 404,但原始网址 domain_name.com/index.php/field/?get_value=value_to_be_written 正在工作
  • 您的规则上面有 Last 标志,这意味着它不会被任何其他规则捕获;它也重写了同样的东西。如果您依赖另一个规则来处理目标,那么您可能应该改用[P],并且最好让目标 URL 与其他规则具有相同的目标。
  • 我一直在尝试完成这项工作,但在放置所需的友好 url domain_name.com/index.php/field/value_to_be_written 时仍然给我错误 404。这是我的代码:&lt;IfModule mod_rewrite.c&gt; RewriteEngine On RewriteBase / RewriteRule ^/index\.php/field/(.*)$ /index.php/field/?get_value=$1 [L] RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] &lt;/IfModule&gt;
【解决方案2】:
RewriteEngine On
RewriteRule ^/index\.php/field/?get_value=$1 [L]

请尝试不确定

【讨论】:

  • 这行不通,因为它缺少对 RewriteRule 的替换
猜你喜欢
  • 2011-10-16
  • 2013-07-22
  • 2011-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多