我正在尝试使用我的.htaccess文件设置一些URL重写。我是初学者,所以请耐心等待!我想要做的是将所有请求从根目录重新路由到/ main /文件夹,因为那是我获得CMS文件的地方。例如,www.example.com /页面应该要求www.example.com/main/page,但只需在浏览器中显示为www.example.com/page。但是,有时我希望能够访问其他文件夹,例如我在www.example.com/dev或www.example.com/stage上发布开发或舞台网站时。在这些情况下,我们只是不能重新路由请求。这是我到目前为止所做的:
RewriteRule ^(/)?$ /main/ [L]
将根请求重写为/ main,并且:
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
RewriteRule ^(.*)$ /main/$1 [L,QSA]
用于所有其他请求。它在大多数情况下工作正常,但问题是如果我输入www.example.com/something_that_doesnt_exist,它会显示主页面(即/ main /),并将URL保留在地址栏中。如果我使用相同的URI并添加/ main /,那么在这种情况下www.example.com/main/something_that_doesnt_exist会转到404页面,这是理想的结果。如何解决此问题,以便www.example.com/something_that_doesnt_exist转到404页面?
而且,对于奖励积分,我如何让www.example.com/main实际转发到www.example.com,以便如果有人在其中输入,或者转到www.example.com(更改网址)在地址栏中),还是404?