1

我是开发领域的新手。我拼命尝试获得好的 URL。我检查了该站点是否存在类似问题,但找不到我需要的确切内容。或者我做得不好。

情况如下:我为一个站点设置了一个项目,该站点的 index.php 文件位于名为 Public 的文件夹中。

为了更清楚,这里是我现在必须访问已构建站点主页的 URL: http://Domain Name.com/ 文件夹/站点名称/公共

我担心的是公共文件夹:我不希望它出现在 URL 中。这是我想获取的 URL: http://Domain Name.com/ 文件夹/站点名称

事实上,我希望这个 URL 允许获取放置在“Public”文件夹中的索引文件。

我无法访问 Apache 配置(共享主机),因此我在项目中放置了一个 .htaccess(即:www/ 文件夹 / 站点名称 /.htaccess)。这是它的内容:

Options -Indexes +FollowSymLinks +Multiviews
RewriteEngine On
RewriteBase /public/
RewriteRule ^(.*)$ index.html [NC,L]

我现在做了一些非常简单的事情,因为我尝试了很多没有有效结果的事情。

4

1 回答 1

1

不太确定您要做什么,但是如果要删除/public/URL中出现的路径,则需要将其从所有链接中删除,其次,关闭多视图,这不是您想要的,第三,您需要请求时外部重定向浏览器的规则/public/,那么您需要在内部重写请求以指向 public.

Options -Indexes +FollowSymLinks -Multiviews
RewriteEngine On

# externally redirect, must match against %{THE_REQUEST}
RewriteCond %{THE_REQUEST} ^(GET|HEAD|POST)\ /public/
RewriteRule ^/?public/(.*)$ /$1 [L,R=301]

# internally rewrite it back, but we must first check that it's pointing to a valid resource:
RewriteCond %{DOCUMENT_ROOT}/public%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/public%{REQUEST_URI} -d [OR]
RewriteCond %{DOCUMENT_ROOT}/public%{REQUEST_URI} -s
RewriteRule ^(.*)$ /public/$1 [L]
于 2012-10-31T23:17:13.653 回答