【问题标题】:How to cut ?Sef= from url [closed]如何从 url 中剪切 ?Sef= [关闭]
【发布时间】:2013-08-04 09:18:49
【问题描述】:

我需要你的帮助。

black-shoes 根据您拥有的产品而变化。

我在下面有那个网址

http://www.example.co.uk/detail/product.php?Sef=black-shoes

我希望它重写为

http://www.example.co.uk/detail/product.php/black-shoes

如何在.htaccessphp 中进行操作

已更新以显示我的完整重写

RewriteEngine on
RewriteBase /

ErrorDocument 404 /test/main/pages/general/404_error.php
Options -Indexes
AuthName "main"

RewriteRule ^css/(.*)$ test/main/css/$1 [L]
RewriteRule ^framework/(.*)$ test/main/css/framework/$1 [L]
RewriteRule ^icon/(.*)$ test/main/icon/$1 [L]

RewriteRule ^img/(.*)$ test/main/img/$1 [L]
RewriteRule ^site_images/(.*)$ test/main/img/site_images/$1 [L]
RewriteRule ^js/(.*)$ test/main/js/$1 [L]

RewriteRule ^foundation/(.*)$ test/main/js/foundation/$1 [L]
RewriteRule ^vendor/(.*)$ test/main/js/vendor/$1 [L]
RewriteRule ^framework/(.*)$ test/main/js/framework/$1 [L]
RewriteRule ^footable/(.*)$ test/main/js/footable/$1 [L]

RewriteRule ^general/(.*)$ test/main/pages/general/$1 [L]
RewriteRule ^detail/(.*)$ test/main/pages/detail/$1 [L]
RewriteRule ^booking/(.*)$ test/main/pages/booking/$1 [L]
RewriteRule ^product/(.*)$ test/main/pages/product/$1 [L]

RewriteRule ^php/(.*)$ test/main/php/$1 [L]
RewriteRule ^$ test/main/pages/general/ [L]

总结

如何将?Sef= 从网址剪切到/。 希望这是一个过程,如果不能,请与我分享我可以采取的任何方法。 非常感谢你。

【问题讨论】:

标签: php .htaccess


【解决方案1】:

我对 .htaccess 有点生疏,但我相信应该这样做:

RewriteRule ^detail/product\.php/([a-z0-9-]+)/?$ detail/product.php?Sef=$1 [L]

【讨论】:

  • 无法测试,但这应该可以解决问题。
  • @SverriM.Olsen 这对我不起作用
  • @Jessica 什么 不起作用?没有什么被重写吗?它是否会重定向到名为“purple-elephant”的产品,它会产生 404 错误还是 500 错误?您确定您首先启用了 mod_rewrite 吗?你的 .htaccess 是在正确的地方吗?
  • 你把它放在其他RewriteRules之上了吗?规则的顺序会影响它们的重写方式。
  • @Sumurai8 没有什么可以重写...
【解决方案2】:

查看 $_SERVER 值

print_r($_SERVER);

还有

$_SERVER['QUERY_STRING'];
$_SERVER['REQUEST_URI'];

答案应该是这样的:

$url = str_replace('?'.$_SERVER['QUERY_STRING'],'/'.$_GET['Sef'],$_SERVER['REQUEST_URI']);

但是,请考虑到将来除了“Sef”之外,您还会将其他变量发送到 URL,因此您应该首先考虑一下 url 是如何以这种方式结束的,然后重写它。

【讨论】:

  • product.php if (isset($_GET['Sef'])) { $id = $_GET['Sef']; 这就是我如何从包含项目列表的页面中获取sef
  • 我试试这个,但不起作用。在我使用if 语句之前,我将您的代码放在上面
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-08
  • 2022-06-15
  • 2010-11-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多