2011-09-21 19 views
6

Ben .htaccess alt alan argümanı erişilemez

RewriteCond %{HTTP_HOST} ^([^\.]+)\.domain\.com 
RewriteCond %1 !^www$ [NC] 
RewriteCond %{REQUEST_URI} ^/news/news-details\.php$ 
RewriteRule (.*) news.php?div=%1 

Yaptığı şey news/news-details.php için değişken eşit div ile isteği news.php dosyasını aktarmak olduğunu .htaccess

aşağıdaki kuralları yazdım. Böyle olması için div'a ihtiyacım yok. Kullanıcı user.domain.com/news/news-details.php'dan geliyorsa, etki alanıyla yazılan alt etki alanının değerine ihtiyacım var. Kullanıcı i.e. news.php?div=user olmak için news.php dosyasındaki div değişkenine ihtiyacım var.

DÜZENLEME:

# 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] 

cevap

11
çelişkilidir İşte bu iki kural

: İşte şimdi bu kök haber detayı sayfası Options

+FollowSymLinks 
RewriteEngine on 

# For Accessing News Details Page for root 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 Accessing News Details Page http://user.domain.com/news/news-details.php 
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com [NC] 
RewriteCond %{HTTP_HOST) !^www\. 
RewriteRule ^news/news-details.php$ news.php?div=%1 [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] 


# For Accessing Divisions Page user.domain.com should go to domain.com/divisions.php?division=user 
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ 
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com$ 
RewriteRule ^$ /divisions.php?division=%1 [L] 

TEKRAR DÜZENLEME

için soruna neden olan Htaccess kodudur

Bunu deneyin:

RewriteCond %{REQUEST_URI} ^/news/news\-details.php$ 
RewriteCond %{HTTP_HOST} ^([a-z0-9]+)\.domain\.com$ [NC] 
RewriteCond %1 !^www$ [NC] 
RewriteRule ^(.*)$ news.php?div=%1 [NC,QSA,L] 

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

RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php [NC,QSA,L] 

RewriteCond %{HTTP_HOST} ^([a-z0-9]+)\.domain\.com$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ divisions.php?division=%1 [NC,QSA,L] 
+0

Bu, dinamik etki alanı için çalışıyor ancak www.domain.com/news/news-details.php yazdığımda beni dizin dosyasına götürüyor. Bunun kullanıcı argümanı olmadan aynı haber dosyasına yönlendirilmesini istiyorum. Yazarken ne demek istediğimi – HardCode

+0

: www.domain.com Ben news.php (param olmadan) ve kullandığımda: user.domain.com kullanıyorum: php? user = user? –

+0

www.domain.com/news/news-details.php yazdığımda, news.php'ye gitmeliyiz, ancak argüman olmadan ve alt alan için yazdığınız kod sadece iyi çalışıyor. Ama şimdi www.domain.com/news/news-details.php yazdığımda beni index.php dosyasına götürüyor değil news.php ?? – HardCode