2013-11-01 82 views
0

試圖使用模塊重寫生成動態Url,它似乎是做錯了什麼,並得到服務器錯誤!服務器遇到一個內部錯誤 我用這個代碼apache 2.4模塊重寫錯誤

<IfModule mod_rewrite.c> 
#Enable mod_Rewrite 
RewriteEngine on 
RewriteBase /project 
RewriteCond %{THE_REQUEST} ^GET\ .*/index\.(php|html?)\ HTTP 
RewriteRule ^(.*)index\.(php|html?)$ $1 [R=301,L] 
</ifModule> 

項目化名爲C:/項目 任何指針達到什麼M試圖?? m使用apche 2.4應該將.htacess保存在項目文件夾中?或conf文件夾? 我想要實現這樣的

localhost/project/index.php?departmentId=2/ 
localhost/project/science-d2/ 

都應該加載相同頁面

回答

0

您正在使用一個無限循環,像這樣: 假設你的Apache配置這樣一些配置文件:

DirectoryIndex index.php index.html index.cgi index.pl index.xhtml 

你重寫規則可能會導致:

/project/index.php => /project => /project/index.php => /project => ... 

在這種情況下,您不需要重寫。所以在這裏解決的辦法是註釋掉的所有指令:

#<IfModule mod_rewrite.c> 
# #Enable mod_Rewrite 
# RewriteEngine on 
# RewriteBase /project 
# RewriteCond %{THE_REQUEST} ^GET\ .*/index\.(php|html?)\ HTTP 
# RewriteRule ^(.*)index\.(php|html?)$ $1 [R=301,L] 
#</ifModule> 
+0

那個功夫, – newbie

0

由於您使用的是Apache 2.4的嘗試與<IfModule rewrite_module>

所以最終的代碼看起來像這樣更換<IfModule mod_rewrite.c>

<IfModule rewrite_module> 
    #Enable mod_Rewrite 
    RewriteEngine on 
    RewriteBase /project 
    RewriteCond %{THE_REQUEST} ^GET\ .*/index\.(php|html?)\ HTTP 
    RewriteRule ^(.*)index\.(php|html?)$ $1 [R=301,L] 
</ifModule> 

中當然,請確保在.conf文件中註釋掉rewrite_module,以便確實加載它。