2012-08-08 96 views
0

我剛剛花了最近2個小時通過Google和Stackoverflow存檔進行拖網,以查看我是否可以找到我的問題的答案,而不是找不到任何東西,我找到了太多!所以很不幸,我不得不加入301重定向問題的山峯。抱歉。並感謝您看看這個;)重寫URL並永久重定向到新URL

基本上,我有一個博客,我正在尋求簡化URL。目前的URL看起來像這樣:

http://tempertemper.net/post.php?s=2012-05-30-freeagent

我想他們是這樣的:

http://tempertemper.net/2012-05-30-freeagent

我試着將重寫規則/(.*)$ /後。 php?s = $ 1到我的.htaccess文件,但它沒有它。

完整文件目前看起來是這樣的:

<ifModule mod_rewrite.c> 

DirectoryIndex index.php index.html 

ErrorDocument 404 http://tempertemper.net/error.php 

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www.tempertemper\.net$ 
RewriteCond %{REQUEST_URI} !cron.php 
RewriteRule ^(.*)$ http://tempertemper.net/$1 [R=301,L] 

</ifModule> 

我已經試過了重定向WWW的canonicalisation位之後添加此。非WWW:

重寫規則^([A-ZA-Z0-9 _-] +)$ post.php中?S = $ 1

它排序的工作原理。然後我可以鏈接到http://tempertemper.net/2012-05-30-freeagent但問題是,http://tempertemper.net/post.php?s=2012-05-30-freeagent仍然存在。這對於s​​eo來說可能不是很好,因爲我猜想我會在搜索引擎的眼中擁有重複的內容。我試過在新行的末尾放置[R = 301],但它會停止新鏈接的工作。還嘗試將L放在方括號中,並將其從規範化命令中移除,但沒有快樂(L代表最後一個命令,是不是......)。

基本上,我是所有生成或使用post.php?s =生成的URL以永久重定向到沒有post.php?s =的URL,以便任何鏈接進入這些頁面被重定向,未來的任何鏈接都將直接指向新外觀的網址。

希望是有道理的......

感謝,

馬丁:)

回答

0

阿帕奇實際修復本地路徑=>正確的完全合格的名稱(我原來的假設),但我看到你的文件actualy檢查錯誤的文件。使用你提供的文件,我認爲這將作爲該文件的內容:

DirectoryIndex index.php index.html 
ErrorDocument 404 http://tempertemper.net/error.php 

RewriteEngine On 
# don't redirect post.php to itself 
RewriteCond %{REQUEST_URI} !post.php 
# don't redirect error.php to post.php 
RewriteCond %{REQUEST_URI} !error.php 
RewriteRule ^(.*)$ "/post.php?$1" [R=301,L] 
+0

嗨Sylwester,我已經試過補充說,但它帶我到這個頁面,當我加載網站:http://tempertemper.net/ post.php?s = post.php並給我錯誤信息「頁面沒有正確重定向,Firefox檢測到服務器正在重定向這個地址的請求,永遠不會完成。由於禁用或拒絕接受cookies而造成的。「 – Martin 2012-08-08 11:55:48

+0

這是因爲post.php macthes重寫規則並做了一個無限循環。我重寫了我的答案,並認爲提供的代碼將替代您的.htaccess文件。 – Sylwester 2012-08-08 13:07:03

+0

嗯...當我在http://tempertemper.net輸入任何網址時,它會把我帶到http://tempertemper.net/post.php,包括根目錄。奇怪的是,它只剝去了CSS。它還顯示在一個頁面上的所有帖子,我認爲這是有道理的。也許這是我如何將它與規範化重定向一起寫入的?我試圖刪除,但發生了同樣的事情... – Martin 2012-08-08 13:15:15