2016-06-13 108 views
1

當使用.htaccess文件在SEO友好樣式中重寫URL時,嘗試訪問PHP中的GET變量時出現問題。傳遞GET變量時PHP htaccess錯誤

使用像www.example.com/blog/index.php?article=foo-bar這樣的URL可以正確加載頁面,但是當我使用諸如www.example.com/blog/article/foo-酒吧/我有一個重定向到索引頁面。

這裏是我的.htaccess文件(請注意,我用的規則去除的index.php在URL中)

Options +FollowSymLinks 

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /blog/index.php?/$1 [L] 
RewriteRule ^article/([a-zA-Z0-9]+)/$ /blog/index.php?article=$1 [QSA,L] 
RewriteRule ^category/([a-zA-Z0-9]+)/$ /blog/index.php?category=$1 [QSA,L] 
RewriteRule ^adm/$ /blog/index.php?page=admin [QSA,L] 

至於說其他工作崗位的網友發帖我這個修正,但會產生錯誤500,我沒有收到關於500錯誤的任何回覆。

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] #This cause the error 500 
RewriteRule ^article/([a-zA-Z0-9]+)/$ /blog/index.php?article=$1 [QSA,L] 
RewriteRule ^category/([a-zA-Z0-9]+)/$ /blog/index.php?category=$1 [QSA,L] 
RewriteRule ^adm/$ /blog/index.php?page=admin [QSA,L] 
RewriteRule ^(.*)$ /blog/index.php?/$1 [L] # This too cause an error 500 in this position 

通過當我點擊refered一個類別的鏈接,而不是僅僅限制在一篇文章中所選類別我有文章像網頁的完整列表的方式。

謝謝,幫助

回答

1

嘗試下列規則:

RewriteEngine On 

RewriteCond %{ENV:REDIRECT_STATUS} . [OR] 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] 

RewriteRule ^article/([\w-]+)/?$ /blog/index.php?article=$1 [QSA,L,NC] 

RewriteRule ^category/([\w-]+)/?$ /blog/index.php?category=$1 [QSA,L,NC] 

RewriteRule ^adm/?$ /blog/index.php?page=admin [QSA,L,NC] 

RewriteRule ^(.*)$ /blog/index.php?/$1 [L,QSA] 
+0

我得到一個錯誤500太 – andreaem

+0

你可以檢查Apache的error.log中並查看錯誤是什麼?這個.htaccess位於哪裏? – anubhava

+0

我的error.log位於var/logs/apache2是空白的,我試圖設置日誌級別信息在Apache配置,但仍然是空的 – andreaem

3

您需要測試或:

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L]