Правила Htaccess для динамического субдомена, конфликтующие для файла индекса - PullRequest
2 голосов
/ 21 сентября 2011

Вот мой файл 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]

Ответы [ 2 ]

10 голосов
/ 22 сентября 2011
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]
0 голосов
/ 21 сентября 2011

Вы не можете указать имя файла в пути.

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

здесь у вас есть файл "news.php", а в пути у вас есть "news".попробуйте другое слово, кроме новостей, в пути или другое имя файла.

, например:

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