2011-11-24 12 views
14

मुझे अपने .htaccess पुनर्निर्देशन में समस्या है। जब मैं टाइप करें:apache विशिष्ट पृष्ठों के लिए नियमों को फिर से लिखना

http://www.domain.com/contact 

यह index.php और नहीं contact.php को जाता है

यहाँ मेरी .htaccess है:

Redirect 301 /clients http://clients.domain.com 

RewriteEngine On 
SetEnvIf Host ^www\. page=www 
SetEnvIf Host ^mob\. page=mobile 

RewriteBase/
SetEnvIfNoCase User-Agent "^Wget" bad_bo 
#etc ... 
Deny from env=bad_bot 

RewriteCond %{HTTP_HOST} !^www.domain.com 
RewriteRule (.*) http://www.domain.com/$1 [R=301] 

RewriteRule ^about/?$ about.php 
RewriteRule ^contact/?$ contact.php 

rewriterule ^(.*)$ index.php?subdomain=%{ENV:page}&page=$1 
मेरी php में

मैं मिलता है:

<?php 

print_r($_GET); 
Array (
    [subdomain] => www 
    [page] => contact.php 
) 

मुझे क्या याद आ रही है?

+0

अपने लापता अपने अंतिम '/' के बाद संपर्क –

+0

@TobyAllen '/' प्रश्न नियम या तो उपयोग/निशान के साथ या नहीं – eric

उत्तर

17

इस नियम का प्रयास करें:

RewriteCond %{HTTP_HOST} !^www.domain.com [NC] 
RewriteRule (.*) http://www.domain.com/$1 [R=301,L] 

RewriteRule ^about/?$ about.php [NC,QSA,L] 
RewriteRule ^contact/?$ contact.php [NC,QSA,L] 

rewriterule ^([a-z0-9]+)$ index.php?subdomain=%{ENV:page}&page=$1 [NC,QSA,L] 

मैं भी यकीन है कि पिछले शासन [L] अगर मैच निष्पादित किया जाता है, गैर मामले के लिए [NC] और [QSA] क्वेरी स्ट्रिंग संलग्न के लिए बनाने के लिए NC, QSA, L झंडे गयी।

0

आप निम्न तरीके से अपने बारे में और संपर्क नियमों को फिर से लिखने की जरूरत है:?

RewriteRule ^about/?$ about.php [L,QSA] 
RewriteRule ^contact/?$ contact.php [L,QSA] 
संबंधित मुद्दे