向上重写URL一个文件夹

时间:2019-02-06 10:01:10

标签: php .htaccess

我正在尝试将我的项目文件夹重定向到上一级结构。 我想按如下方式更改网址地址:

在根文件夹中,我没有这些项目文件夹,它们在“项目”文件夹中

结构是这样

import React,{ Component } from 'react';
import Home from './components/Home';
import MovieInfo from './components/MovieInfo';
import TvInfo from './components/TvInfo';
import { BrowserRouter, Route, Switch } from 'react-router-dom';

class App extends Component {
render(){
return(
  <BrowserRouter>
    <Switch>
      <Route exact path="/" component={Home} />
      <Route path="/:movie_id" component={MovieInfo} />
      <Route path="/:tv_id" component={TvInfo} />
    </Switch>
  </BrowserRouter>

 )
}
}


export default App;

因此,如果用户输入URL http://localhost/my-website/project1/,则URL保持不变,但是就像输入完整地址一样起作用。这可以实现吗?到目前为止,我尝试了很多选择,但仍然无法完成...

2 个答案:

答案 0 :(得分:1)

首先,如果可以修改Apache配置文件,请不要使用.htaccess文件。 最好将这些类型的配置添加到vhost配置中。

话虽如此:

.htaccess

<Location "/">

    AllowOverride None
    Options FollowSymLinks
    Require all granted

    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        # RewriteRule ^project(.*) projects/project$1 [QSA,L]
        # RewriteRule ^project([0-9*]?)/(.*) projects/project$1/$2 [QSA,L]
    </IfModule>

</Location>

/my-website/project1/变为/my-website/projects/project1/

/my-website/project1/whatever变为/my-website/projects/project1/whatever

取消对一个盟友的评论, 第一个比较通用,并在project之后全部捕获, 第二个更具体,并寻找一个数字。

答案 1 :(得分:0)

简单的答案,我偶然发现自己。

在其他任何调用之前的顶部,添加以下内容

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule   ^projects/(.+)$   $1
 </IfModule>