【问题标题】:Apache Server alias - Rewrite rule Zend Framework not workingApache 服务器别名 - 重写规则 Zend Framework 不起作用
【发布时间】:2013-12-30 08:25:00
【问题描述】:

我为我的网站添加了一个子域 - 让我们说

man.domain.com

这是原始内容 - 添加以将 domain.com 重定向到 www.domain.com

<VirtualHost xx.yy.zz.abc:80>
   DocumentRoot "/home/webadmin/domain.com/html"
   ServerName domain.com
   ServerAlias www.domain.com
   RewriteEngine on
   RewriteCond %{HTTP_HOST} ^domain.com [NC]
   RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
</VirtualHost>

现在在我的 httpd.conf - 我为子域添加了以下内容

<VirtualHost xx.yy.zz.abc:80>
   DocumentRoot "/home/webadmin/domain.com/html"
   ServerName domain.com
   ServerAlias man.domain.com   
   RewriteEngine on
   RewriteCond %{HTTP_HOST} ^domain.com [NC]
   RewriteRule ^(.*)$ http://man.domain.com/$1 [L,R=301]
</VirtualHost>

所以现在当我访问主页时

http://man.domain.com

它工作正常并且页面打开了 - 但是当我点击主页中的后续链接时 - 它们不起作用 - 就像

http://man.domain.com/user/abc

这会导致

未找到 在此服务器上找不到请求的 URL /user/abc。 Apache/2.2.21 (CentOS) 服务器在 man.domain.com 端口 80

这是我的 .htaccess 文件中的内容 - 尚未更改 - 这是我在添加子域之前所拥有的内容

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]

所以我不确定这是我需要配置的 Zend 设置还是 apache

任何帮助将不胜感激 谢谢

【问题讨论】:

    标签: apache .htaccess zend-framework subdomain apache-config


    【解决方案1】:

    你好,请试试这个应该为 Zend 框架做的:

    <VirtualHost xx.yy.zz.abc:80>
    ServerName domain.com
    ServerAlias man.domain.com  
    DocumentRoot "/home/webadmin/domain.com/html"
    
    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>
    

    【讨论】:

    • 嗨 ArneRie - 感谢您的提示 - 所以我在上面添加了 .htaccess 的内容 - 它看起来与您的相似 - 我需要将其更改为您粘贴的内容 - 在我的httpd.conf - 我添加了 RewriteEngine Off 并删除了 RewriteCond 和 RewriteRule - 仍然没有运气
    • 如果您使用 .htaccess,则不需要 httpd.conf 中的规则,但您必须添加“AllowOverride All”: DirectoryIndex index.php AllowOverride All Order allow,deny Allow from all
    猜你喜欢
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 2021-09-22
    • 1970-01-01
    • 2014-02-02
    • 1970-01-01
    • 2017-08-31
    • 2015-07-26
    相关资源
    最近更新 更多