Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.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 从URL中删除文件名并在URL中保留2个GET变量?_Php_.htaccess_Mod Rewrite - Fatal编程技术网

Php 从URL中删除文件名并在URL中保留2个GET变量?

Php 从URL中删除文件名并在URL中保留2个GET变量?,php,.htaccess,mod-rewrite,Php,.htaccess,Mod Rewrite,我正在开发一个网站,我需要创建一个特定的URL结构。。。那么,如何创建此url: http://example.com/index.php?city=mumbai&place=chembur 为此: http://example.com/mumbai/chembur 可能吗 编辑: 我尝试在htaccess文件中使用以下代码,但它显示一个空页面 # RewriteCond %{REQUEST_FILENAME} !-f # RewriteRule !/$ %{REQUEST_URI}

我正在开发一个网站,我需要创建一个特定的URL结构。。。那么,如何创建此url:

http://example.com/index.php?city=mumbai&place=chembur
为此:

http://example.com/mumbai/chembur
可能吗

编辑:

我尝试在htaccess文件中使用以下代码,但它显示一个空页面

# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteRule !/$ %{REQUEST_URI}/ [L,R=301]

# RewriteCond %{REQUEST_FILENAME} -f [OR]
# RewriteCond %{REQUEST_FILENAME} -d
# RewriteRule ^ - [L]

# RewriteRule ^([^/]+)/([^/]+)/?$ index.php?city=$1&place=$2 [L,QSA]

# RewriteRule ^([^/]+)/?$ index.php?city=$1 [L,QSA]
编辑:我选择@Absolute初学者答案,因为它的代码更少,错误为0。我知道这不是url重定向,但它解决了我的问题


同时,感谢@CallofDev对我们的帮助

在这里,我们必须单独处理这些规则,以便在您只有一个变量或两个变量的情况下获得特定的url。在您的情况下,您所做的是为同一规则分配条件,因此不起作用。因此,我们为这两种URL格式定义了条件。第一条规则在仅传递city的值时有效,另一条规则仅在两个值都传递时有效。这里的链接将帮助您了解如何检查规则


您可以使用一个简单的PHP路由器

.htaccess

FallbackResource index.php
index.php

$path = explode('/', $_SERVER['REQUEST_URI']);
$city = $path[1]; // mumbai
$place = $path[2]; // chembur

// Do what you want with those two variables (database query or include a file).


这将使您能够完全控制url结构。这不是url重写,而是一种不同的方法。

@Evert我已经编辑了我的question@anubhava是的,我测试了。htaccess已启用。谢谢您的快速响应。我试过了,但它给我的对象没有找到错误。。我正在处理xamppDid,您尝试在httpd.conf文件中将AllowOverride更改为All。我尝试了,但没有用。。另外,我尝试过在共享主机上测试它,但它会出现内部服务器错误。谢谢你保存了my day=D我在子文件夹中上传了脚本,但后来移到了根目录,它成功了!能够帮助你是我们的荣幸。干杯抱歉,但我不明白这将如何将此URL转换为:现在URL类似于example.com/?mumbai/chembur,但是我想删除?从url也可以,您不需要添加?在example.com之后,因为没有变量通过URL传递。这将是:example.com/mumbai/chembur正是你想要的。
$path = explode('/', $_SERVER['REQUEST_URI']);
$city = $path[1]; // mumbai
$place = $path[2]; // chembur

// Do what you want with those two variables (database query or include a file).