如何剪切?Sef =来自网址

时间:2013-08-04 09:18:50

标签: php .htaccess

我需要你的帮助。

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=从网址剪切为/。 希望这是一个过程,如果没有,请与我分享我可以采取的任何方法。 非常感谢你。

2 个答案:

答案 0 :(得分:1)

关于.htaccess,我有点生疏,但我相信这应该做到:

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

答案 1 :(得分:0)

查看$ _SERVER值

print_r($_SERVER);

另外

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

答案应该像:

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

但请注意,考虑到将来除了“Sef”之外你还会将其他vars发送到URL中,所以你应该首先想一想这个url是如何结束的,然后重写它。