【问题标题】:htaccess rewrite rule to redirect domain to load from a folder without showing folder name in urlhtaccess 重写规则以重定向域以从文件夹加载而不在 url 中显示文件夹名称
【发布时间】:2014-05-15 21:37:10
【问题描述】:

我有以下从文件夹加载域的重写规则。当我尝试转到http://www.mydomainfolder.com/somerfolder 时遇到的问题然后它重定向并在地址(http://www.mydomainfolder.com/mydomainfolder/somefolder/index.php)中显示“mydomainfolder”但如果添加尾部斜杠(http://www.mydomainfolder.com/somerfolder/)那么它不会显示 mydomainfodler地址。我在这里做错了什么。请帮忙!!

       Options +FollowSymLinks

       RewriteEngine On


       RewriteCond %{HTTP_HOST} ^(.*)?smydomain.com$
       RewriteCond %{REQUEST_URI} !^/mydomainfolder/
       RewriteCond %{REQUEST_FILENAME} !-f
       RewriteCond %{REQUEST_FILENAME} !-d
       RewriteRule ^(.*)$ /mydomainfolder/$1
       RewriteCond %{HTTP_HOST} ^(.*)?mydomain.com$
       RewriteRule ^(/)?$ /mydomainfolder/$1/index.php [L]

【问题讨论】:

    标签: apache .htaccess rewrite rule


    【解决方案1】:

    将您的规则替换为:

    Options +FollowSymLinks
    
    RewriteEngine On
    
    RewriteCond %{HTTP_HOST} mydomain\.com$
    RewriteRule ^/?$ /mydomainfolder/index.php [L]
    
    RewriteCond %{HTTP_HOST} mydomain\.com$
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^/mydomainfolder
    RewriteRule ^(.*?)/?$ /mydomainfolder/$1/ [L]
    

    【讨论】:

    • 感谢您的快速响应,但不起作用......它是一样的
    • somerfolder/mydomainfolder/ 中的真实目录吗?
    • 是的,./somefolder 里面有 index.php
    • 不,这是因为您的浏览器缓存。在新的浏览器中测试它。
    • /mydomainfolder/$1/ [L] 中的尾部斜杠使一切变得不同。您的规则正在重写为/mydomainfolder/subdir,这是一个有效目录,然后mod_dir 介入并将其重定向到/mydomainfolder/subdir/mod_dir 中已有斜杠不会触发。
    猜你喜欢
    • 2013-11-27
    • 2017-07-16
    • 1970-01-01
    • 2012-08-20
    • 2016-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-03
    相关资源
    最近更新 更多