2011-10-21 50 views
0

所以我在我的/ var /網絡/網站下面的.htaccess的.htaccess不會觸發

RewriteEngine on 
RewriteRule ^([^/]+)/?$ parser.php?id=$1 [QSA,L] 

我已經允許覆蓋在我的虛擬主機:

<Directory /> 
       Options FollowSymLinks 
       AllowOverride All 
     </Directory> 
     <Directory /var/www/site> 
       Options Indexes FollowSymLinks MultiViews 
       AllowOverride All 
       Order allow,deny 
       allow from all 
     </Directory> 

     ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 
     <Directory "/usr/lib/cgi-bin"> 
       AllowOverride None 
       Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
       Order allow,deny 
       Allow from all 
     </Directory> 

UPDATE: 現在我得到它的工作,但是當我訪問site.com,它也將我重定向到這個parser.php,我不想,因爲這是我的主頁。 我的主頁應該被重定向到index.php,如果我做mysite/NASKDj,它應該被重定向到parser.php?pid = NASKDj。我該如何解決?

+0

權限.htaccess文件上的權限?其他.htacess文件在同一個Web服務器上工作嗎? – Tim

+0

這是一個相當開放的'RewriteRule'。除非你的意圖是匹配*所有*,否則我會建議讓它更加嚴格。 –

+0

看到我上面的更新,我缺少一些信息 – adit

回答

2

您在'/ var/www/site'目錄中有'AllowOverride None' - 這會超出'/'目錄中指定的目錄。如果你的網站在/ var/www/site中,你需要將這一個改爲All。

+0

看到我上面的更新 – adit

+0

嘗試在RewriteEngine聲明後添加:「RewriteBase /」。 –

+0

不,它仍然重寫我的www.site.com – adit

0

我剛剛在您的<Directory /var/www/site>...</Directory>中看到了AllowOverride None,那麼?