【问题标题】:How do I rewrite URL using .htacess without consequences for $_GET data如何使用 .htaccess 重写 URL 而不会影响 $GET 数据
【发布时间】:2016-06-03 13:43:06
【问题描述】:

我想用一些 $_GET 数据更改我的 URL,例如:

http://www.website.com/articles.php?article=article_title_stored_in_database
http://www.website.com/simple_page.php?page=page_title_stored_in_database

让它们看起来像这样:

http://www.website.com/articles/article_title_stored_in_database/
http://www.website.com/pages/page_title_stored_in_database/

另一个问题:如果我更改了其中包含 $_GET 数据的 URL,更改后是否可以访问它们?所以如果地址是:

http://www.website.com/articles/article_title_stored_in_database/

变量 $_GET['article'] 将返回 'article_title_stored_in_database' ? 谢谢。

【问题讨论】:

  • 相同的 URL 结构不能同时转发到 2 个不同的 PHP 文件
  • 是否意味着文件夹“内容”只能用于articles.php或simple_page.php?
  • 您可以为 2 个不同的 php 文件使用 2 个不同的前缀,/content 不必是一个真正的文件夹。
  • 谢谢。我编辑了问题
  • 我在您编辑后在下面发布了一个答案:)

标签: php .htaccess url mod-rewrite get


【解决方案1】:

您可以在 DOCUMENT_ROOT/.htaccess 文件中使用这些规则:

Options -MultiViews
RewriteEngine On

RewriteRule ^articles/([^/]+)/?$ articles.php?article=$1 [L,QSA,NC]

RewriteRule ^pages/([^/]+)/?$ simple_page.php?article=$1 [L,QSA,NC]

【讨论】:

  • 非常感谢。 .htaccess 文件是我理解的外星技术。我希望它工作正常。即使我将 AllowOverride 设置为 All,它也不能在我的 Xampp Apache 服务器上运行。但我相信它会在hostinig上运行良好。再次感谢您的帮助! :)
  • 它没有。我认为这是一个xampp问题。我现在对 xampp 有很多问题,例如,方法 POST 不起作用。如果我用 post 方法发送一些东西,变量(数组)$_POST 是空的,还有许多其他问题。现在我正在寻找不同的程序来使用。
  • 我已经用 XAMPP 进行了测试,它工作正常。确保您的 .htaccess 中只有这两条规则,并且您的系统中没有其他 .htaccess
  • 当我尝试到达 /clanky/nadpis_clanku .. 404 错误
  • 我卸载了 Xampp 并安装了 Wamp。复制的文件和数据库。方法 POST 和你的 RewriteRule 也有效。也许Xampp没有正确安装..无论如何,一切都很好,感谢您的帮助和您对像我这样的新手的耐心。 :)
猜你喜欢
  • 2015-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-16
  • 2017-06-30
  • 1970-01-01
  • 2019-09-06
  • 1970-01-01
相关资源
最近更新 更多