2012-01-07 180 views
1

存在URL重寫正在運行但服務器不顯示內容的問題。我的.htaccess文件是htaccess URL重寫 - 在服務器上找不到請求的URL

RewriteEngine On 
    RewriteBase/
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /project\.php [NC] 
    RewriteCond %{QUERY_STRING} id=([0-9]+) [NC] 
    RewriteRule . project-%1.html? [R=301] 

感謝您的幫助!

編輯:對不起,這裏有一些更多的信息!

我想重寫

www.siteurl.co.uk/project.php?id=82 

www.siteurl.co.uk/project-82.html 

在.htaccess的代碼重寫URL完美,但該頁面不顯示。我得到一個

404 The requested URL /project-82.html was not found on this server. 

我希望有幫助!

+2

你忘了描述您的問題,反問 – zerkms 2012-01-07 00:30:01

+0

不知道要配什麼發送簡潔的URL與應用程序進行處理?幾乎不可能知道從哪裏開始 – 2012-01-07 00:31:10

+0

對不起,這是從另一個問題繼續,我忘了添加所有的信息!我現在編輯它! – 5ummer5 2012-01-07 00:44:28

回答

1

您只有一半的解決方案,創建漂亮的網址。現在缺少的是另一半,如下

RewriteEngine On 
RewriteBase/
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /project\.php [NC] 
RewriteCond %{QUERY_STRING} id=([0-9]+) [NC] 
RewriteRule . project-%1.html? [R=301] 

#you need this rule to process your www.siteurl.co.uk/project-82.html request 
RewriteRule ^project-([0-9]+)\.html$ project.php?id=$1 [L,NC,QSA] 
+0

這已經完成了!非常感謝你! – 5ummer5 2012-01-07 02:57:46

0

嘗試把RewriteRule ^project-%1.html? [R=301]代替.

+0

這就是答覆。我剛剛嘗試過,它根本沒有重寫URL。 – 5ummer5 2012-01-07 00:57:58

0

不知道是什麼的 「[A-Z] {3-9} \」 是?也許我錯過了什麼?

但也許這樣的事情,而不是:

RewriteCond %{THE_REQUEST} ^project\.php [NC] 
RewriteCond %{QUERY_STRING} id=([0-9]+) [NC] 
RewriteRule . project-%1.html? [R=301] 

RewriteCond %{QUERY_STRING} id=([0-9]+) [NC] 
RewriteRule ^/project\.php project-%1.html? [R=301] 

請注意,這只是從我的頭頂,我沒有測試它。

編輯:只是調整,其中有在它的一個額外的斜槓,並測試了它在我的網絡服務器的第二個例子(注意,我使用的是IIS/URLRewrite,而應該是相同的):

RewriteBase/
RewriteCond %{QUERY_STRING} id=([0-9]+) [NC] 
RewriteRule ^project\.php project-%1.html? [R=301] 

我進入HTTP://localhost/project.php ID = 123它去HTTP://localhost/project-123.html

但我想我錯過了一些東西...你說網址重寫正在工作,並且網址正在改變,但你是獲得404?在那種情況下,你的重寫聽起來不錯 - 而其他的東西不允許訪問你的html文件(或者它們不存在)?

+0

感謝您的回覆!我擔心這些工作並沒有保持相同的URL。我不知道什麼是「[A-Z] {3-9}」,但它適用於它。除了加載頁面! – 5ummer5 2012-01-07 00:55:50

+0

編輯完成了這個技巧,並重寫了URL。你說的是project-82.html文件不存在是正確的。我只想讓網址閱讀www.siteurl.co.uk/project-82.html而不是www.siteurl.co.uk/project.php?id=82。 – 5ummer5 2012-01-07 01:48:10

相關問題