无法访问子域的子页面URL

时间:2015-05-12 06:17:08

标签: php apache .htaccess mod-rewrite url-rewriting

我为通配符子域访问做了重写规则,允许我访问列表页面的任何国家/地区,如下所示:

    RewriteCond %{HTTP_HOST}    ^(.+)\.mydomain\.net$
    RewriteCond %{HTTP_HOST}    !^www\.mydomain\.net$
    RewriteCond %{REQUEST_URI}  !^.*\.(jpe?g|png|gif|bmp)$ [NC]
    RewriteRule (.*)            pages/list.php?country=%1 [L]

这很好用。

现在。我做了一个重写规则来访问域上的另一个页面,但我不断被引回到列表页面。

    RewriteRule    ^ad/([A-Za-z0-9-]+)?$        pages/details.php?alias=$1                                          [NC,L]

我的最终结果是访问例如:http://us.mydomain.net/ad/alias,但它一直将我引回到列表页面。

更新的重写规则(截至5月14日)

        RewriteEngine on

        <IfModule mod_headers.c>
           Header set Access-Control-Allow-Origin "*"
        </IfModule>

        RewriteRule ^cat/([A-Za-z0-9-]+)/?$ ?category=$1 [L,QSA,NC]

        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{HTTP_HOST}    ^(.+)\.ibizportal\.net$
        RewriteCond %{HTTP_HOST}    !^www\.ibizportal\.net$
        RewriteCond %{REQUEST_URI}  !^.*\.(jpe?g|png|gif|bmp)$ [NC]
        RewriteRule (.*)            pages/list.php?country=%1 [L]

1 个答案:

答案 0 :(得分:0)

将第一条规则更改为:

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

RewriteRule ^cat/([A-Za-z0-9-]+)/?$ ?category=$1 [L,QSA,NC]

RewriteCond %{HTTP_HOST} ^((?!www).+)\.mydomain\.net$ [NC]
RewriteCond %{REQUEST_URI} !\.(?:jpe?g|png|gif|bmp|php)$ [NC]
RewriteRule (.+) pages/list.php?country=%1 [L,QSA]