【问题标题】:how to Change a GET method URL to clean URL in php?如何更改 GET 方法 URL 以清除 php 中的 URL?
【发布时间】:2014-03-16 07:53:49
【问题描述】:

这是由php 中的GET 方法创建的URL,用于将DATA 参数发送到archives.html 页面:

http://127.0.0.1/archives.html?option=com_archive&date=16-2-2014

有什么办法可以清理这个网址吗?

我想做这样的事情(我也可以发送参数!)

http://127.0.0.1/archives.html/16-2-2014

我可以通过 mod_rewrite 做到这一点吗?

(我正在joomla3上开发一个组件)

【问题讨论】:

  • "我可以通过 mod_rewrite 做到这一点吗?"是的。

标签: php .htaccess url clean-url get-method


【解决方案1】:

您可以在根 .htaccess 中使用此规则:

RewriteEngine On

RewriteRule ^(archives\.html)/([0-9-]+)/?$ /$1/?option=com_archive&date=$2 [L,NC,QSA]

【讨论】:

  • 尝试:RewriteRule ^([^.]+\.html)/([0-9-]+)/?$ /$1?option=com_archive&date=$2 [L,NC,QSA,R] 作为您的第一条规则
  • 我也试过这个:RewriteRule 127.0.0.1/archives.html?option=com_archive&date=$2 [L,NC,QSA,R] ...没有发生!
  • 您必须确保这是您在根 .htaccess 中的第一个 URL,并且您应该使用的 URL 是:http://127.0.0.1/archives.html/16-2-2014 进行测试。
  • 谢谢。您的最后一个代码不起作用...但我将其更改为: RewriteRule ^(archives\.html)/([0-9-]+)/?$ 127.0.0.1/archives.html/?option=com_archives&date=$2 [L,NC,QSA] ...现在可以了...你能告诉我为什么吗?
  • 啊,我在$1 之后少了一个斜线,请参阅更新的代码。
【解决方案2】:

在 PHP 中执行此操作的一种方法:

$original_url = 'http://127.0.0.1/archives.html?option=com_archive&date=16-2-2014';
$new_url = explode('?', $original_url);
$clean_url = $new_url[0];

【讨论】:

  • 谢谢...代码只是将 URL 更新为 127.0..0.1 那么如何将参数发送到 archive.html?
【解决方案3】:
RewriteEngine On
RewriteRule ^([^/]*)$ /archives.html?option=com_archive&date=$1 [L]

此 htaccess 将为您完成这项工作 通过 url 我假设这是 joomla

此文档可能会对您有所帮助

http://docs.joomla.org/Enabling_Search_Engine_Friendly_(SEF)_URLs_on_Apache

【讨论】:

  • 感谢您的回答....但非方法不起作用。我之前启用了 mod_rewrite 和 .htaccess ...并激活了所有原生 joomla sef。 RewriteEngine On RewriteRule ^([^/]*)$ /archives.html?option=com_archive&date=$1 [L] (我想将参数从主页发送到 archives.html 页面。)但我收到所有页面的 500 错误! (包括主页)
  • Joomla 500 Internal Error 希望至少这会对你有所帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-09
  • 1970-01-01
相关资源
最近更新 更多