【问题标题】:Htaccess rules for dynamic sub domain conflicting for index file用于索引文件的动态子域冲突的 Htaccess 规则
【发布时间】:2011-11-21 23:37:16
【问题描述】:

这是我的 htaccess 文件

Options +FollowSymLinks
RewriteEngine on

# For Accessing Page http://www.domain.com/news/news-details.php
RewriteCond %{HTTP_HOST} ^www.domain\.com$ [NC]
RewriteRule ^news/news-details.php$  news.php [QSA,NC,L]


# For www.domain.com it should go to the index page
RewriteCond %{HTTP_HOST} ^(www\.)?domain.com$ [NC]
RewriteRule ^(.*)$ index.php [NC,L]

当我在浏览器中输入http://www.domain.com/news/news-details.php 时,它会将我带到 index.php 页面而不是 news.php。为什么?

编辑: 检查这些规则

# For www.domain.com it should go to my-index.php page
#
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC]
RewriteRule ^(.*)$ my-index.php [NC,L]


# For Page URL http://www.domain.com/news/news-details.php
#
RewriteCond %{REQUEST_URI} ^/news/news\-details\.php [NC]
RewriteCond %{HTTP_HOST} ^www\.domain\.com$  [NC]
RewriteRule ^(.*)$ my-news.php [NC,QSA,L]

【问题讨论】:

    标签: .htaccess url-rewriting subdomain


    【解决方案1】:
    Options +FollowSymLinks
    RewriteEngine On
    
    # For Page URL http://www.domain.com/news/news-details.php
    RewriteCond %{HTTP_HOST} ^www\.domain\.com$  [NC]
    RewriteRule ^news/news-details\.php$ /my-news.php [NC,QSA,L]
    
    # For Accessing Division Page http://user1.domain.com/news/news-details.php
    RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com [NC]
    RewriteCond %{HTTP_HOST) !^www\.
    RewriteRule ^news/news-details\.php$ /my-news.php?user=%1 [QSA,NC,L]
    
    # For Accessing Users Page
    RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
    RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com$
    RewriteRule ^$ /users.php?user=%1 [L]
    
    # For www.domain.com it should go to my-index.php page
    # (but only if requested resource is not real file)
    RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ /my-index.php [L]
    

    【讨论】:

      【解决方案2】:

      你不能在路径中指定文件名。

      RewriteRule ^news/news-details.php$  news.php [QSA,NC,L]
      

      这里有“news.php”文件,路径中有“news”。 尝试在路径中使用除 news 之外的其他词或文件的其他名称。

      例如:

      RewriteRule ^news/news-details.php$  news_main.php [QSA,NC,L]
      

      【讨论】:

      • 我有那个文件已经不同了。它的名字不是 news.php。索引规则仍在触发并与新闻文件冲突
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-28
      • 2011-07-27
      • 1970-01-01
      • 2016-01-19
      • 2012-06-09
      • 2021-08-24
      相关资源
      最近更新 更多