【问题标题】:How can I remove this directory/folder from url with htaccess rewrite?如何使用 htaccess 重写从 url 中删除此目录/文件夹?
【发布时间】: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”。

如果有人可以帮助我会很棒

【问题讨论】:

    标签: regex .htaccess mod-rewrite directory url-rewriting


    【解决方案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 错误代码......我现在真的很困惑。也许我想要的实际上是不可能的?
    猜你喜欢
    • 2015-12-17
    • 2020-09-06
    • 1970-01-01
    • 2018-05-25
    • 2021-02-11
    • 1970-01-01
    • 2020-01-09
    • 2015-06-28
    相关资源
    最近更新 更多