我有一个使用Apache + Cpanel的VPS。
我无法在其上配置Nginx,据我所知,唯一的方法是先“静态导出”,然后再部署它。
原来,我无法通过直接粘贴在网址栏上的链接来访问产品页面(而不是单击链接文本)。
链接如下所示:www.example.com/products/4
或www.example.com/products/213
我的第一个建议是因为我“静态导出”了项目。
我在<Link />
下使用下一路线
我的代码
import React, { Component } from 'react';
import { withRouter } from 'next/router';
import { connect } from 'react-redux';
import fetch from 'isomorphic-fetch';
import Navbar from '../components/Navbar';
import Footer from '../components/Footer';
import CheckoutBody from '../components/CheckoutBody';
class Product extends Component {
static async getInitialProps({ query }) {
let { id } = { ...query };
if (id === undefined) id = 14;
const res = await fetch(`http://www.example.com/api/product?id=${id}`);
const data = await res.json();
return { campaignDetail: data };
}
render() {
let { lang } = this.props;
return (
<React.Fragment>
<Navbar />
<CheckoutBody
key={this.props.productDetail.id}
productDetail={this.props.productDetail}
lang={lang}
/>
<Footer />
</React.Fragment>
);
}
}
export default Product ;
问题相同,但问题不同:https://github.com/zeit/next.js/issues/9893
我已经尝试过对.htaccess进行此操作。它不起作用。我是regex和htaccess的新手。
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule !.*\.html$ %{REQUEST_FILENAME}.html [L]