【问题标题】:php page URL redirect htaccess phpphp 页面 URL 重定向 htaccess php
【发布时间】:2022-01-19 08:24:37
【问题描述】:

已经阅读了很多问答,但这对我不起作用。请尽快提供帮助。

想打开这个页面 https://investmango.com/update/details.php?name=the-leela-sky-villa

在这个网址 https://investmango.com/update/the-leela-sky-villa

此代码不适合我

RewriteEngine On
RewriteBase /
RewriteRule ^([^/]+/\d+)/$ https://investmango.com/update/$1 [L,R=302,QSA]
RewriteRule ^[^/]+/(\d+)$ details.php?name=$1 [L,QSA]

我必须在更新文件夹或域根目录中添加此代码的另一件事

【问题讨论】:

  • 欢迎来到 SO,请添加您尝试过的 htaccess 规则文件。正如它对 SO 的高度鼓励一样;应该努力解决问题,谢谢。
  • RewriteEngine On RewriteBase / RewriteRule ^([^/]+/\d+)/$ sample.com/update/$1 [L,R=302,QSA] RewriteRule ^[^/]+/(\d+) $ details.php?name=$1 [L,QSA]
  • 我试过上面的代码,但它不工作
  • 添加请检查
  • “想要打开此页面https://sample.com/update/details.php?=page-url” - 尽管您似乎缺少 URL 参数名称?正则表达式 ^[^/]+/(\d+)$ 专门匹配最后一个路径段中的数字,所以它永远不会匹配 /update/page-url - 除非 page-url 真的只是一个数字 ID?但是name 具有误导性。你到底把这个.htaccess 文件放在哪里?使用当前指令,它要么与请求的 URL 不匹配,要么重写为错误的 URL,具体取决于 .htaccess 文件的放置位置。

标签: .htaccess


【解决方案1】:

将您的 htaccess 规则文件保存在更新文件夹中,并按以下方式保存。

确保在测试您的 URL 之前清除您的浏览器缓存。

RewriteEngine ON
RewriteBase /update/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/(.*)/?$ $1/details.php?$2 [QSA,L]

JS/CS 重写/重定向: 您可能需要使用 base 标签来修复您的 js 和其他相关资源。如果您使用相对路径链接 js 文件,那么该文件显然会得到 404,因为它正在寻找 URL 路径。例如,如果 URL 路径是 /file/ 而不是 file.html,那么您的相关资源将从 /file/ 加载,这不是目录而是重写的 html 文件。要解决此问题,请使您的链接成为绝对链接或使用基本标签。在您的网页标题中添加此<base href="/">,以便您的相关链接可以从正确的位置加载。

【讨论】:

猜你喜欢
  • 2014-04-21
  • 1970-01-01
  • 1970-01-01
  • 2013-06-09
  • 2021-05-02
  • 1970-01-01
  • 1970-01-01
  • 2013-06-22
  • 1970-01-01
相关资源
最近更新 更多