2013-06-27 40 views
0

我開始學習使用mod_rewrite。這裏的下XAMPP/htdocs中我的測試.htaccess文件:如何使用帶「R」標誌的mod_rewrite RewriteRule將url重寫爲localhost上的一個?

RewriteEngine On 
RewriteRule ^something/?$ test.php [R,NC,L] 

重寫作品,未經R標誌,但是當我補充一點,在和訪問本地主機/東西時,URL重定向到是http://localhost/C:/xampp/htdocs/test.php。 當我搜索它,我讀了R只能用於外部重定向,並證實這一點,我換成test.phphttp://google.com和它的工作。

是否有一個原因,我不應該試圖做到這一點?如果沒有,那麼我該如何將它重寫爲localhost/test.php

回答

1

您需要提供正確的路徑,使用/test.php代替,並定義RewriteBase。您還應該在RewriteRule標誌中提供重定向狀態,即R=301R=302

+0

這是正確的,但它也致力於簡單地改變'test.php'到'/ test.php'。同樣,它也可以簡單地添加'RewriteBase /'。 @AMADANON Inc.你也是對的,但我希望有一種方法來使用相對路徑。 – Heath

0

我覺得你的問題是,「本地主機」指的是「本」的電腦,因此,如果從瀏覽器的角度來看,它是瀏覽器的電腦 - 即你的桌面,而不是你的網絡服務器。

試着做一個重寫http://yourservername/path/test.php

+0

重定向必然是絕對的。你可以這樣做:'RewriteRule ^(something)/?$%{REQUEST_SCHEME}://%{HTTP_HOST} /$1/test.php [R,NC,L]' –