.htaccess htaccess在apache中从URL末尾删除目录

sxpgvts3  于 2022-11-16  发布在  Apache
关注(0)|答案(1)|浏览(163)

好吧,所以我知道这是一个问题,已经问了很多次,但是,我一直没有能够找到一个答案,我的具体情况,所以请不要击落我。我有一个网站:http://gmcomputers.co.za。我使用.htaccess文件将此URL重定向到子文件夹以加载内容:

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/$
RewriteRule (.*) /gmcomputers/ [L,DPI,R=301]

这是完美的工作,除了当我去http://gmcomputers.co.za我得到http://gmcomputers.co.za/gmcomputers/。所以我的问题是,我如何修改上述代码,以删除/gmcomputers/从被追加?请注意,我复制了上述代码从一个网站,因为我在所有的经验,在重定向等,并仍在学习。此外,我使用.htaccess重定向的原因是因为根目录中有其他网站,因此我无法编辑Apache的任何配置文件。
谢谢你

wr98u20j

wr98u20j1#

你在你的问题中自相矛盾。一方面你写你想重定向,这“工作得很完美”,但随后你又写你不想要那个结果。
我的 * 猜测 * 是你实际上 * 不 * 想重定向,而是你想在内部重写你的请求指向那个服务器端文件夹。而浏览器的URL栏中可见的URL * 不 * 显示那个文件夹。这是你想问的吗?
如果是这样,请看下面的例子:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/gmcomputers
RewriteRule ^ /gmcomputers%{REQUEST_URI} [END]

您可能希望添加一个实际的重定向,以实际使用其请求中的文件夹名称来定向客户端:

RewriteEngine on

RewriteRule ^/?gmcomputers/(.*)$ /$1 [R=301,END]

RewriteCond %{REQUEST_URI} !^/gmcomputers
RewriteRule ^ /gmcomputers%{REQUEST_URI} [END]

最好是在中央http服务器的主机配置中实现这样的规则。(通常称为“.htaccess”),其位于为HTTP主机配置的DOCUMENT_ROOT文件夹中,* 如果您在主机配置中启用了对此类文件的考虑 *。尽管这会带来许多缺点。上述实现同样适用于 * 两种 * 方法。

相关问题