Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何剪切?Sef=来自url_Php_.htaccess - Fatal编程技术网

Php 如何剪切?Sef=来自url

Php 如何剪切?Sef=来自url,php,.htaccess,Php,.htaccess,我需要你的帮助 黑鞋根据您的产品而变化 我有下面的网址 http://www.example.co.uk/detail/product.php?Sef=black-shoes 我想把它改写成 http://www.example.co.uk/detail/product.php/black-shoes 如何在.htaccess或php 已更新以显示我的完整重写 RewriteEngine on RewriteBase / ErrorDocument 404 /test/main/pages/

我需要你的帮助

黑鞋
根据您的产品而变化

我有下面的网址

http://www.example.co.uk/detail/product.php?Sef=black-shoes
我想把它改写成

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

如何在
.htaccess
php

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

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=
从url剪切到
/
。 希望这是一个过程,如果不是,请与我分享我可以采取的任何方法。
多谢各位

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

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

查看一下$\u服务器值

print_r($_SERVER);

答案应该是smth,如:

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

但请注意,将来还会有其他的VARS被发送到URL之外,所以你应该首先考虑URL是如何结束的,然后重写它。

当你在它的时候,为什么不<代码> /细节/产品/黑鞋> /代码>?@ Svrim.OLSEN,我不想删掉这些。我已经把url改写成这样了。感谢您的想法,您可以分享您已经尝试过的内容吗?该
详细信息
文件夹的url已剪切到此
重写规则^detail/(.*)$test/main/pages/detail/$1[L]
类似问题:,以及许多其他问题无法测试,但这应该可以解决问题。@SverriM.Olsen这不适用于me@Jessica什么不起作用?什么都没有被重写吗?它是否改为重定向到名为“紫色大象”的产品,它是否产生404错误或500错误?你确定一开始就启用了mod_rewrite吗?您的.htaccess是否位于正确的位置?您是否将其置于其他
重写规则
之上?规则的顺序会影响重写规则的方式。@Sumurai8在
product.php
if(isset($\u get['Sef']){$id=$\u get['Sef']
这就是我如何从包含项目列表的页面中获取
sef
的方法。我尝试了这个方法,但不起作用。在使用
if
语句之前,我将您的代码放在上面
$url = str_replace('?'.$_SERVER['QUERY_STRING'],'/'.$_GET['Sef'],$_SERVER['REQUEST_URI']);