如何解决如何重写子文件夹的规则?
我对htaccess中的简单重写规则有疑问...
我的htaccess是这样的:
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)/$ /$1 [L,R=301]
RewriteRule ^company$ /company.PHP?lang=en [QSA]
RewriteRule ^company/about$ /article.PHP?lang=en [QSA]
在本地有效。 但是在线无法正常工作。 如果我转到URL“ www.com/company/about”,则有company.PHP页面... 你能告诉我我的问题是什么吗? 非常感谢
解决方法
具有这种方式:
Options -MultiViews
RewriteEngine On
RewriteBase /
## Unless directory,remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/+$
RewriteRule ^ %1 [R=301,NE,L]
RewriteRule ^company$ company.php?lang=en [L,NC,QSA]
RewriteRule ^company/about$ article.php?lang=en [L,QSA,NC]
重要更改正在禁用选项MultiViews
。 MultiViews
使用选项Apache's content negotiation module
(请参阅http://httpd.apache.org/docs/2.4/content-negotiation.html)来运行{strong>之前 mod_rewrite
,并使Apache服务器匹配文件扩展名的/file
。因此,如果/file.php
是URL,那么Apache将提供L
(如果系统中存在)。
我还在您的2条规则中添加了NC
(最后一个)和//..getIdByEmail.js
const getIdByEmail = email => {
return new Promise((resolve,reject) => {
db.collection('Clients').get().then(data => {
data.docs.map(doc => {
const d = doc.data();
if (d.email === email) resolve(doc.id);
});
reject("no email");
});
});
}
//..Login Page
const signIn = async(props) => {
const ID = await getIdByEmail(Email).catch(err=>{
if(err=="no email"){
console.log("no email")
}else{
console.err(e);
}
})
(忽略大小写)标志。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。