【问题标题】:404 error during ugly url redirect to pretty url丑陋的 url 重定向到漂亮的 url 期间出现 404 错误
【发布时间】:2019-10-21 17:54:16
【问题描述】:

我在 StackOverflow 上尝试了很多示例,但在我的情况下似乎没有任何效果。

我的网址是 - https://apkleet.com/apk.php?app=google-camera
我想把它重定向到这个 - https://apkleet.com/apk/google-camera

我成功地通过这个 htaccess 代码创建了一个漂亮的 URL

RewriteRule ^apk/(.*)$ ./apk.php?app=$1 


在 .htaccess 文件中添加此代码后,用户可以访问漂亮和丑陋的 URL,这对 SEO 有负面影响,这就是为什么我决定使用此代码将丑陋的 URL 重定向到漂亮的 URL。
RewriteCond %{QUERY_STRING} ^app=(.*)$
RewriteRule ^apk\.php$ /apk/%1? [R=301]
RewriteRule ^apk/([^-]+)$ /apk.php?app=$1 [L]

并且重定向有效,但问题是我收到 404 错误。问题是什么?我将如何更正我的代码?帮帮我……

【问题讨论】:

  • 问题似乎缺少访问和重写日志。或者解释([^-]+) 应该如何匹配google-camera
  • “对 SEO 有负面影响” - 然后在结果页面中指定正确的 canonical URL,并完成它......
  • 您可能会发现在应用程序逻辑中始终实现redirect to the right url, if on the wrong one 会更容易。否则 apache 规则变得比必要的更复杂。然后可以将 apache 逻辑限制为“确保此请求到达正确的位置”。
  • 兄弟,如果有更好的方法,为什么我应该添加规范。

标签: php .htaccess


【解决方案1】:

我的问题的答案是

if(substr($_SERVER['REQUEST_URI'], 1, 7) == 'apk.php'){
    Header( "HTTP/1.1 301 Moved Permanently" ); 
    Header( "Location: https://apkleet.com/apk/".$_GET["app"]);
    exit;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    • 2019-10-15
    • 2021-03-22
    • 1970-01-01
    • 2018-04-29
    • 1970-01-01
    相关资源
    最近更新 更多