2013-06-05 293 views
3

我有一個blog.php的頁面,應該讓所有這些請求重定向:的.htaccess重定向到一個頁面

www.site.com/blog去blog.php的

www.site.com/blog/id-of-an-entry#goes到blog.php的?ID =一個條目ID-的-

另外國際例如法語版本:

www.site.com/fr/blog *#至blog.php的?LANG = FR

www.site.com/fr/blog/id-of-entry*q若要blog.php?lang = fr & id = id-of-entry

.htaccess更有效率和有效的cond /規則是什麼?我做了很多嘗試,但最終走在圈子或許多專業規則:-)感謝您的任何見解!

回答

2

啓用mod_rewrite的,並通過httpd.conf的.htaccess,然後把這個代碼在你.htaccessDOCUMENT_ROOT目錄:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteRule ^blog/([^/]+)/?$ /blog.php?id=$1 [L,NC,QSA] 

RewriteRule ^blog/?$ /blog.php [L,NC,QSA] 

RewriteRule ^([^/]+)/blog/([^/]+)/?$ /blog.php?lang=$1&id=$2 [L,NC,QSA] 

RewriteRule ^([^/]+)/blog/?$ /blog.php?lang=$1 [L,NC,QSA] 
+0

它的作品非常漂亮,謝謝。 – Joan

+1

讓我添加一個相關的問題,同時測試我在http://localhost/site/blog.php。你會怎麼做才能在這裏工作呢? (localhost/site/blog/the-id重定向到localhost/site/blog.php?id?the-id) – Joan

+2

@Juan:只要有這樣的規則:'RewriteRule ^(site/blog)/([^/] +)/?$ /$1.php?id=$2 [L,NC,QSA]'。 – anubhava

1
我不使用這個regulary所以可以有更好的辦法

但是這可能會幫助你。規則是這樣的。 ()是你想要匹配的變量。比你可以參考他們的$1等等。例如news/local會將它們重定向到文件news-local.php,您可以使用相同的系統來匹配您獲得的變量。

相關問題