如何使用 htaccess 重写从 url 中删除此目录/文件夹?
Posted
技术标签:
【中文标题】如何使用 htaccess 重写从 url 中删除此目录/文件夹?【英文标题】:How can I remove this directory/folder from url with htaccess rewrite? 【发布时间】:2013-10-23 17:41:02 【问题描述】:我的目标是:
domain.com/folder
重写->
domain.com
这将涉及该站点内的所有链接。 我的意思是网站上的链接如下:
domain.com/folder/forum.html
domain.com/folder/community.html
等等
这是我的目标:
domain.com/forum.html
domain.com/community.html
等等
非常重要的是,“文件夹”永远不会在地址栏中的 url 中可见。
我已经尝试了很多代码,但我无法真正解决这个问题。 我最好的尝试是使用以下代码:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %REQUEST_URI !(.*)folder
RewriteRule ^(.*)$ folder/$1 [L]
如果我输入
domain.com
我得到了
的内容 domain.com/folder
显示,什么是正确的(“文件夹”不在显示的 url 中)。但是当我点击网站的某些链接时,例如:domain.com/folder/community.html 然后我可以在 url 中再次看到“文件夹”,但我希望它总是被删除。
这是我的网站:
thewedgiecommunity.x10.mx/wedgiecommunity/
我的目标是删除“wedgiecommunity”(=文件夹) 此链接有效
thewedgiecommunity.x10.mx/
但是当你点击社区(
thewedgiecommunity.x10.mx/wedgiecommunity/community.html
) 然后我在 URL 中再次获得“wedgiecommunity”。
如果有人可以帮助我会很棒
【问题讨论】:
【参考方案1】:当直接通过浏览器访问时,您可以使用此规则从 URL 中“删除”文件夹:
RewriteCond %THE_REQUEST \ /wedgiecommunity/
RewriteRule ^wedgiecommunity/(.*)$ /$1 [L,R=301]
然后您的其他规则将处理其余部分。
【讨论】:
不起作用。这段代码仍然相同。当我转到 thewedgiecommunity.x10.mx/wedgiecommunity/community.html 时,我仍然在 URL 中看到“wedgiecommunity”(=文件夹)。【参考方案2】:您可以使用此代码:
进入 DOCUMENT_ROOT/wedgiecommunity/.htaccess:
RewriteEngine On
RewriteCond %THE_REQUEST ^[A-Z]3,\s/+wedgiecommunity([^\s]*) [NC]
RewriteRule ^ %1 [R=301,L]
进入 DOCUMENT_ROOT/.htaccess:
RewriteEngine On
RewriteRule !^/?wedgiecommunity wedgiecommunity%REQUEST_URI [L,NC]
【讨论】:
不起作用。这段代码仍然相同。当我转到 thewedgiecommunity.x10.mx/wedgiecommunity/community.html 时,我仍然在 URL.l 中看到“wedgiecommunity”(=文件夹) +1 但我认为您在您的情况下(在%1
捕获组中)捕获了额外的/
。
@Bardock:第一季度。这是唯一的 .htaccess 还是 wedgiecommunity 中有另一个? Q2。这是这个 .htaccess 中唯一的代码吗?如果您有其他代码,请发布有问题的代码? Q3。上面 .htaccess 的位置是什么?
A1:是的,我在 wedgiecommunity 中还有另一个 .htaccess。但是由于字符限制,我不能在这里发布它的所有内容。 A2:是的,我用这段代码完全替换了旧代码。 A3:它在 public_html 文件夹中,如果您认为有帮助,我可以为您提供 FTP 访问权限。
嗯,好吧,它现在到处都删除了 wedgiecommunity。但现在我在网站上收到 404 错误代码......我现在真的很困惑。也许我想要的实际上是不可能的?以上是关于如何使用 htaccess 重写从 url 中删除此目录/文件夹?的主要内容,如果未能解决你的问题,请参考以下文章
.htaccess 为子文件夹中的 PHP 页面重写漂亮的 URL?
CodeIgniter htaccess 和 URL 重写问题