2015-10-07 35 views
1

我無法理解,也找不到所需的明確信息。mod_rewrite url反過來重定向

是否有可能用mod_rewrite localhost/mysite/index.php?a=search url來重寫localhost/mysite/search

我試過用維基百科http://en.wikipedia.org/w/index.php?title=Dog,那麼它立即重定向到https://en.wikipedia.org/wiki/Dog。我想要類似的東西。

我試過這個代碼在我的本地網站的.htaccess文件:

RewriteRule ^([a-z]+)/?$ index.php?a=$1 [NC,L] 

它的工作時,我試圖在瀏覽器類似localhost/mysite/search鍵入,但它僅僅是一個我想要的一部分。請回答,我完全精疲力竭。

+0

IMO,要做到這一點最簡單的方法是隻檢查'$ _ SERVER [「REQUEST_URI」]'在PHP和它是否與查詢字符串的URL重定向回。 –

+0

那麼只有這種可能嗎?和mod_rewrite只是不是這個部分的URL更改?而且,mod_rewrite只能在直接輸入時才能保持url mysite/search? – GingerN

回答

0

您需要額外的重定向規則才能重定向到漂亮的URL。有這樣說:

RewriteEngine On 

RewriteCond %{THE_REQUEST} /index\.php\?a=([^\s&]+) [NC] 
RewriteRule^/%1? [R=302,L,NE] 

RewriteRule ^([a-z]+)/?$ index.php?a=$1 [NC,L,QSA] 
+1

它的工作!非常感謝你,現在我有了一件事情來理解一些東西! – GingerN

+0

你能回答更多問題嗎? 使用302重定向或301重定向有什麼不同? 什麼樣的鏈接格式會在搜索結果中顯示搜索引擎?他們會認爲這是一兩頁? – GingerN

+0

'302'因爲瀏覽器永久緩存'301',所以很適合測試。一旦通過驗證,您就可以使其成爲'301' – anubhava