【问题标题】:How to redirect with pretty and clean URL's?如何使用漂亮干净的 URL 进行重定向?
【发布时间】:2019-11-06 21:35:39
【问题描述】:

当尝试重定向到 www.example.com/how-to-cook-a-egg

没用

但如果你这样做 wwww.example.com/viewpost.php?p=how-to-cook-a-egg

效果很好

这是我目前用来重写 URL 的,这在我的本地运行良好,但是一旦我在我的服务器上尝试它就无法正常工作

RewriteEngine on

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]

RewriteRule ^([-\w]+)$ viewpost.php?p=$1 [NC,L]

这个网址也存储在数据库how-to-cook-a-egg中

所以我想要发生的是,当您在网站的主页上并单击 www.example.com/how-to-cook-a-egg 网址时,它会转到 viewpost.php 并显示该帖子去掉url中的viewpost.php

【问题讨论】:

  • 您确认您的服务器是 Apache HTTPD 吗? mod_rewrite 已加载?配置允许覆盖吗?
  • 可能这篇文章有帮助吗?希望你是这样:)(路径参数)stackoverflow.com/questions/1114950/…
  • “它不起作用”在这里并没有真正的帮助。您需要自己挖掘,因为我们不了解也无法访问您的设置。那么:什么http服务器,什么版本,什么配置?您的 http 服务器的错误日志文件说明了什么?
  • @arkascha Mod 重写在服务器上启用
  • @also 这个 url how-to-cook-a-egg 存储在数据库中

标签: php .htaccess


【解决方案1】:

请尝试在您的 .htaccess 文件中使用此代码

  RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^users/(\d+)*$ ./profile.php?id=$1
RewriteRule ^threads/(\d+)*$ ./thread.php?id=$1

RewriteRule ^search/(.*)$ ./search.php?query=$1

【讨论】:

    【解决方案2】:

    好的,这是我的错,我发现我必须将 / 添加到 RewriteRule 之一

    所以在 RewriteRule 之前 ^([-\w]+)$ viewpost.php?p=$1 [NC,L]

    现在是 RewriteRule ^([-\w]+)$ /viewpost.php?p=$1 [NC,L]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-04
      • 1970-01-01
      • 2016-04-19
      • 1970-01-01
      • 2016-02-25
      相关资源
      最近更新 更多