我已经创建了一个API,我用一个特定的url获取我的所有数据,通过像这样的"id":
'myfolder.php/1'
所以现在我试着用一个字符串获取我的url:
myfolder.php/mystring
在id的Htacess中,我喜欢这样:
RewriteRule ^[^/]+/(d+)$ myfolder.php?id=$1
但我找不到适合我尝试过的字符的正则表达式:
RewriteRule ^[^/]+/([a-z]+)$ myfolder.php?string
编辑:如果我调用url'myurl.com'
,就会调用我的函数getProducts。如果我调用'myurl.com/1'
,则会调用getProduct($id(但是如果我调用'myurl.com/string'
,$_GET为空,并且调用getProducts。
switch($request_method) {
case 'GET':
// HERE $_GET is empty if i called a string
if(!empty($_GET["id"])) {
$id= $_GET["id"];
getProduct($id);
}
else {
getProducts();
}
break;
default:
header("HTTP/1.0 405 Method Not Allowed");
break;
}
使用您显示的示例,请尝试以下操作。请确保在测试URL之前清除浏览器缓存。还要确保php文件位于保存htaccess规则文件的同一文件夹中。
##Enabling RewriteEngine here.
RewriteEngine ON
##Placing conditions for non-existing requests with rewriterule to php file.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([w-]+)/?$ myfolder.php/$1 [NC,QSA,L]