我试图申请"漂亮"我网站的网址。
ie:localhost/api/?id=15
到
localhost/api/id/15
这是我的htaccess:
RewriteEngine On
RewriteBase /api/
RewriteRule ^/?id/([^/d]+)/?$ index.php?id=$1 [L,QSA]
似乎没有任何效果,但htaccess在这里看起来很好。
我是否需要更新任何apache配置?
答案 0 :(得分:0)
正如@Abhishek在评论中提到的那样,你可以使用AltoRouter.如果轮子存在并且效果很好,那就重新发明轮子。
require 'AltoRouter.php';
$r = new AltoRouter();
$r->map('/api/id/[i:id]', function($userid) {
// your logic for what this URL does
// [i:id] will look for any integers and store it as $userid
}, 'example');
$m = $r->match();
if($m && is_callable($m['target'])):
call_user_func_array($m['target'], $m['params']);
else:
header('Location: /404');
exit();
您可以在网站上找到文档和示例htaccess。
答案 1 :(得分:0)
对于像这样的网址
localhost/api/id/15
htaccess可以像这样
RewriteEngine On
RewriteBase /api/
RewriteRule ^id/([0-9]+)$ index.php?id=$1 [L,QSA]
在id=$1
中,您将获得id=15
答案 2 :(得分:0)
这个htaccess看起来不错。 htaccess override和apache重写模块未启用。
我必须编辑文件async function register(user: User) {
try {
const result = await this.afAuth.auth.createUserWithEmailAndPassword(user.email, user.password);
await this.afAuth.auth.currentUser.updateProfile({
displayName: user.displayName,
photoURL: ""
});
let currentUser = result;
let date = new Date().getTime();
let userData = {
email: currentUser.email,
displayName: currentUser.displayName,
uid: currentUser.uid,
created: date,
};
await this.database.list('users').set(userData.uid, userData)
// Do something after everything above is executed
return;
} catch(e) {
console.log(e);
}
};
:
/etc/apache2/apache2.conf
并将其更改为;
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
然后,
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
启用apache重写模块。
最后使用sudo sudo a2enmod rewrite
重新启动apache以查看操作中的更改。