【问题标题】:Apache2 HTTP conf RewriteRule www.domain.com/page1 to /domain/com/www/page1?Apache2 HTTP conf RewriteRule www.domain.com/page1 到 /domain/com/www/page1?
【发布时间】:2012-12-10 15:15:51
【问题描述】:

很抱歉,如果这是一个相当简单的问题,我正在设置一个测试网络服务器,我正在尝试将它从多个 VirtualHost 语句转换为一个动态且无需创建即可自动增长的语句每次设计新网站时都会有新的 VirtualHost 条目。

结构是/domain/suffix/prefix/folder1

例如

www.hello.com/world1 会去

/var/www/hello/com/www/world1

blog.world.net/world2 会去

/var/www/world/net/blog/world2

有什么想法吗?那很好啊。干杯。

【问题讨论】:

  • 没有模式可以制定规则。除非您想要为每种可能性制定规则,否则我建议您设计一种格式,使请求的 URI 和替换 URI 之间存在相关性。例如:blog.world.net 变为 /blog,因此无法猜测什么会变成什么。

标签: http mod-rewrite apache2


【解决方案1】:

为什么不能有一个通用前端控制器文件(最好是 index.php)。这个前端控制器文件可以解析和路由请求参数以到达适当的模块/子文件夹。

Apache mod-rewrite 逻辑将帮助我们:

<VirtualHost my.domain.com:80>
    ServerName   my.domain.com
    DocumentRoot /var/www/     
    RewriteEngine off     
    <Location />
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} -s [OR]
        RewriteCond %{REQUEST_FILENAME} -l [OR]
        RewriteCond %{REQUEST_FILENAME} -d
        RewriteRule ^.*$ - [NC,L]
        RewriteRule ^.*$ /index.php [NC,L]
    </Location>
</VirtualHost> 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-02
    相关资源
    最近更新 更多