2016-03-03 94 views
2

我有一個問題是,當更改我的網站,這是動態生成的網址。內部服務器錯誤與RewriteRule

我已啓用Apache模塊mod重寫localhost wamp服務器。在fundionaba完美之前,但在php url之前使用了兩個變量來刪除一個服務器失敗。我不明白爲什麼失敗。你可以幫我嗎?

當你點擊以前工作過的相同鏈接時,服務器錯誤是很奇怪的。如果php變量或php錯誤存在問題,因爲它會,但不是服務器錯誤。當它的工作完美前

htaccess的規則:

RewriteRule ^nov/([^/]*)\.php$ /nov/nov.php?url=$1 [L] 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /nov/nov\.php\?url=(.+)\ HTTP/ 
RewriteRule ^nov/nov\.php$ /nov/%1\.php? [L,R=301] 

讓我們來看看,如果我可以說:我現在用的移除一個變量的作品不給內部服務器錯誤

RewriteRule ^nov/([^/]*)/([^/]*)\.php$ /nov/nov.php?url=$1&url=$2 [L] 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /nov/nov\.php\?url=(.+)&url=(.+)\ HTTP/ 
RewriteRule ^nov/nov\.php$ /nov/%1/%2\.php? [L,R=301] 

規則錯誤的原因,我所做的只是刪除其中一個變量。謝謝。

Apache服務器錯誤日誌:

[Thu Mar 03 10:17:46 2016] [error] [client ::1] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace., referer: http://localhost/ 
+1

是您的PHP文件nov.php導致錯誤是什麼讓你的服務器錯誤? PHP-Error log中有什麼東西嗎? – Candyman1332

+1

檢查你的apache error_log爲500的原因。 –

+1

錯誤是在apache描述了有答案的合作伙伴。非常感謝你們,我會用apache的錯誤編輯我的信息。 – PlayerWet

回答

3

你必須排除你重寫othewise你會得到一個無限循環的錯誤,因爲/nov/nov.php?url=$1也匹配目的地模式^月/(.+)。PHP的$

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /nov/nov\.php\?url=([^\s]+) [NC] 
RewriteRule^/nov/%1.php? [L,R=301] 
RewriteCond %{REQUEST_URI} !^/nov/nov\.php 
RewriteRule ^nov/(.+)\.php$ /nov/nov.php?url=$1 [L] 
+1

真是太神奇了。它已經工作了!我不明白其他代碼正在運行,只刪除其中一個變量是錯誤。 非常感謝您的幫助。 – PlayerWet